set获取元素_「 深入浅出 」集合Set

set获取元素_「 深入浅出 」集合Set_第1张图片

系列文章

「 深入浅出 」集合List

「 深入浅出 」java集合Collection和Map

Set继承自Collection接口,不能包含有重复元素。本篇文章主要讲Set中三个比较重要的实现类:HashSet、TreeSet。

Set

Set是一个存储无序且不重复元素的集合。 在使用Set集合的时候,应该注意两点

  • 为Set集合里的元素的实现类重写equals()和hashCode()方法()
  • 若传入重复的元素,重复元素会被忽略(可以用于做集合的去重)

扩展 判断两个元素相等的标准:两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法返回值也相等。

HashSet

HashSet是Set接口的典型实现,是哈希表结构,主要利用HashMap的key来存储元素,计算插入元素的hashCode来获取元素在集合中的位置,因此具有很好的存取和查找性能。

主要特点 1.不允许出现重复元素 2.存储的元素是无序的 3.不是同步的,如果多个线程同时访问一个HashSet,则必须通过代码来保证其同步。 4.集合元素值可以是null。

HashSet基本操作

public class HashSetTest {
        public static void main(String[] agrs){
            //创建HashSet集合:
            Set hashSet = new HashSet();
            System.out.println("HashSet初始容量大小:"+hashSet.size());

            //元素添加:
            hashSet.add("my");
            hashSet.add("name");
            hashSet.add("is");
            hashSet.add("ken");
            hashSet.add("hello");
            hashSet.add("everyone");
            System.out.println("HashSet容量大小:"+hashSet.size());

            //迭代器遍历:
            Iterator iterator = hashSet.iterator();
            while (iterator.hasNext()){
                String str = iterator.next();
                System.out.print(str+" ");
            }
            System.out.print("n");
            //元素删除:
            hashSet.remove("ken");
            System.out.println("HashSet元素大小:" + hashSet.size());
            hashSet.clear();
            System.out.println("HashSet元素大小:" + hashSet.size());

            //集合判断:
            boolean isEmpty = hashSet.isEmpty();
            System.out.println("HashSet是否为空:" + isEmpty);
            boolean isContains = hashSet.contains("hello");
            System.out.println("HashSet是否为空:" + isContains);
        }
}
//out:
HashSet初始容量大小:0
HashSet容量大小:6
ken everyone name is hello my 
HashSet元素大小:5
HashSet元素大小:0
HashSet是否为空:true
HashSet是否为空:false<

你可能感兴趣的:(set获取元素,set集合和list集合的区别,判断集合是否为空)