0
点赞
收藏
分享

微信扫一扫

J2EE&集合框架&Set

code_balance 2023-07-13 阅读 44

目录

一.Set特点

特点:无序,不重复

思考:如果对List容器中的元素去重?

二.遍历:foreach,迭代器

三.扩容: 初始容量16,负载因子0.75,扩容增量1倍

性能参数:初始容量,负载因子

默认值: 初始容量16,负载因子0.75

示例:new HashSet<>(20, 0.5f);

四.HashSet

五.思考

1. 如何给ArrayList集合去重

      @Before    public void setup() {        list.add(1);        list.add(2);        list.add(3);        list.add(3);        list.add(4);        list.add(5);        list.add(3);        list.add(4);        //list.add(3);    }

    //去重复    @Test    public void test05() {                HashSet ll = new ArrayList (new  HashSet(list));            ll.forEach(t->System.out.println(t));    }

2. set有ArrayList中存在的通过下标删除,或foreach循环删除时的问题吗? 为什么

答:set无下标  所有没有

3. set是否存在List删除,传入整数需要区分是基本型还是对象型的问题,【例如:list.remove(2)】,为什么? 

答:存在 基本型的整数

六.TreeSet

示例:

 自定义比较器

①通过构造函数传入比较器

②实现排序接口


一.Set特点

特点:无序,不重复

思考:如果对List容器中的元素去重?

二.遍历:foreach,迭代器

三.扩容: 初始容量16,负载因子0.75,扩容增量1倍

性能参数:初始容量,负载因子

默认值: 初始容量16,负载因子0.75

示例:new HashSet<>(20, 0.5f);

四.HashSet

  1. 它存储唯一元素并允许空值  依据对象的hashcode来确定该元素是否存在
  2. 由HashMap支持
  3. 不保持插入顺序
  4. 非线程安全

五.思考

1. 如何给ArrayList集合去重

2. set有ArrayList中存在的通过下标删除,或foreach循环删除时的问题吗? 为什么

答:set无下标  所有没有

3. set是否存在List删除,传入整数需要区分是基本型还是对象型的问题,【例如:list.remove(2)】,为什么? 

答:存在 基本型的整数

六.TreeSet

  • 是一个包含有序的且没有重复元素的集合
  • 作用是提供有序的Set集合,自然排序或者根据提供的Comparator进行排序
  • TreeSet是基于TreeMap实现的

示例:

 自定义比较器

①通过构造函数传入比较器

②实现排序接口

举报

相关推荐

0 条评论