• 1.特点

    • TreeSet是用来排序的, 可以指定一个顺序, 对象存入之后会按照指定的顺序排列
  • 2.使用方式

    • a.自然顺序(Comparable)

      • TreeSet类的add()方法中会把存入的对象提升为Comparable类型

      • 调用对象的compareTo()方法和集合中的对象比较

      • 根据compareTo()方法返回的结果进行存储
    • b.比较器顺序(Comparator)

      • 创建TreeSet的时候可以制定 一个Comparator

      • 如果传入了Comparator的子类对象, 那么TreeSet就会按照比较器中的顺序排序

      • add()方法内部会自动调用Comparator接口中compare()方法排序

      • 调用的对象是compare方法的第一个参数,集合中的对象是compare方法的第二个参数

        * 可以采用匿名内部类的方式。

    • c.两种方式的区别

      • TreeSet构造函数什么都不传, 默认按照类中Comparable的顺序(没有就报错ClassCastException)

      • TreeSet如果传入Comparator, 就优先按照Comparator

        二叉树:两个叉。小的存储在左边(负数),大的存储在右边(正数),相等就不存在(0)。

        compareTo方法,在TreeSet集合中如何存储元素取决于compareTo方法的返回值

        返回0,集合中只有一个元素。返回-1,集合会将存储的元素倒序。返回1集合会怎么存就怎么取

        
             注意:
        

      1)、分析排序条件的主次

      2)、如果两种排序方式都有,以比较器顺序优先。

      3)、如果是存储的已经实现了Comparable接口的元素,而我们又想改变它的排序规则,那么就只能使用比较器了。

[](

)4.总结

  • (1).List

    • a.普通for循环, 使用get()逐个获取

    • b.调用iterator()方法得到Iterator, 使用hasNext()和next()方法

    • c.增强for循环, 只要可以使用Iterator的类都可以用

    • d.Vector集合可以使用Enumeration的hasMoreElements()和nextElement()方法
  • (2).Set

    • a.调用iterator()方法得到Iterator, 使用hasNext()和next()方法

    • b.增强for循环, 只要可以使用Iterator的类都可以用
  • (3).普通for循环,迭代器,增强for循环是否可以在遍历的过程中删除

笔者福利

以下是小编自己针对马上即将到来的金九银十准备的一套“面试宝典”,不管是技术还是HR的问题都有针对性的回答。

有了这个,面试踩雷?不存在的!

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
回馈粉丝,诚意满满!!!

Java基础 - HashSet(1)
Java基础 - HashSet(1)
Java基础 - HashSet(1)
Java基础 - HashSet(1)