Set方法使用

Set

Set 的特点是去重,如果相同的数据只会保留一个。集合内的数据是一个无序的状态,。当然也有例外,TreeSet就是有序的。

方法名 说明
add(E e) 增加单个数据
addAll(Collection<? extends E> c) 将一个 Collection 集合的数据添加到现在的集合中
remove(Object o) 删除指定的元素
contains(Object o) 判断集合是否包含指定的元素
size() 得到集合的数据总数
isEmpty() 判断集合是否有数据
clear() 清空数据
toArray() 将List转为对象数组

可以看到,Set 和 List 中的方法都是相同的,作用也一致。但是 Set 是没有直接获取数据的方法。我们更多的时候使用的是 List 和 Map。

HashSet 由哈希表( 实际上是一个HashM ap 实例) 支持, 为基木操作提供了稳定性能, 这些基本操作包括add() 、remove() 、contains() 和size() , 假定哈希函数将这些元素正确地分布在桶中。对此 set() 进行迭代所需的时间与HashSet 实例的大小( 元素的数量) 和底层HashMap 实例( 桶的数量)的“ 容量” 的和成比例。因此, 如果迭代性能很重要, 则不要将初始容量没置得太高( 或将加载因了设置得太低) 。

public static void main(String[] args) {

    HashSet set = new HashSet<>();
        
    set.add( new Object() );
    set.add( new Object() );
    set.add( "hello" );
    set.add( "hello" );
    set.add( "你好" );
    set.add( 123 );
    set.add( 123 );
    set.add( 234 );
    set.remove("你好");
    set.remove( new Object() );
    for (Object object : set) {
        System.out.println( object );
    }
}

以上代码经输出可以看到:输出的内容没有按照输入时的顺序进行输出。

李四
8890
张三
azxcv
ABC
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容