Set接口的使用

  Set集合里多个对象之间没有明显的顺序。具体详细方法请参考API文档(可见身边随时带上API文档有多重要),基本与Collection方法相同。只是行为不同(Set不允许包含重复元素)。

      Set集合不允许重复元素,是因为Set判断两个对象相同不是使用==运算符,而是根据equals方法。即两个对象用equals方法比较返回true,Set就不能接受两个对象。

public class TestSet
{
	public static void main(String[] args) 
	{
		Set<String> books = new HashSet<String>();
		
		//添加一个字符串对象
		books.add(new String("Struts2权威指南"));
		
		//再次添加一个字符串对象,
		//因为两个字符串对象通过equals方法比较相等,所以添加失败,返回false
		boolean result = books.add(new String("Struts2权威指南"));
		
		System.out.println(result);
		
		//下面输出看到集合只有一个元素
		System.out.println(books);	
	}
}

 

      程序运行结果:

false 
[Struts2权威指南]

 

 

        说明:程序中,book集合两次添加的字符串对象明显不是一个对象(程序通过new关键字来创建字符串对象),当使用==运算符判断返回false,使用equals方法比较返回true,所以不能添加到Set集合中,最后只能输出一个元素。

        Set接口中的知识,同时也适用于HashSet、TreeSet和EnumSet三个实现类。

 

posted @ 2017-04-06 10:12  锦绣河山锦  阅读(155)  评论(0)    收藏  举报