`
退役的龙弟弟
  • 浏览: 447002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Set集合

 
阅读更多

一、Set

 

set里存放的是对象的引用,并且没有重复对象。只要地址相同都算重复对象。

hashSet的对象内对地址可以通过,object.hashCode()获取。

这里是一段代码

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;


public class Set1 {

	public static void main(String[] args) {
		Set set1=new HashSet();
		String s1="hello";
		String s2="word";
		String s3="hello";
		String s4="ru";
		String s5="shen";
		set1.add(s1);
		set1.add(s2);
		set1.add(s3);
		set1.add(s4);
		set1.add(s5);
		System.out.println(set1);
		Iterator it=set1.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
		
	}

}


运行结果:

set集合的全部内容:[hello, word, shen, ru]
hello
word
shen
ru

可以看出set集合只存储了对象引用,而且无序。

二、HashSet

hashset和set类似,不过hashset存储的是对象的hashCode,同样他判断对象是否相同的依据也是内存地址是否相同

import java.util.Set;
import java.util.HashSet;
public class HashSet1 {
	public static void main(String[] args){
		Set<Customer> ss=new HashSet<Customer>();
		Customer c1=new Customer("如", 23);
		Customer c2=new Customer("如", 23);
		ss.add(c1);
		ss.add(c2);
		System.out.println("hashSet的长度是:"+ss.size());
		System.out.println("c1的hashCode:"+c1.hashCode());
		System.out.println("c2的HashCode:"+c2.hashCode());
	}
}


运行结果:

hashSet的长度是:2
c1的hashCode:26752749
c2的HashCode:4067003

虽然对象的值相同,但是地址不同,所以可以放到set集合中。

三、TreeSet

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics