Set和排序
Set特性 无序且不可重复,无序指的是添加顺序和存储顺序不保证一致
HashSet :底层是散列表
TreeSet:底层是红黑树,添加的元素必须按照一定的格式进行排序
数字:默认从小到大
字符串:按每位Ascii码进行排序
日趋:自然日期,昨天今天明天
TreeSet
使用TreeSet的时候,元素必须实现了Comparable接口,因为在添加元素的时候,会自动调用该接口的compareTo方法进行比较
添加字符串,数字,日期的时候,会自动进行排序,因为Integer,String,Date都实现了该接口和方法。如果我们要存储自定类型的时候,就需要让该类去实现对应的接口和方法才能进行存储
public class Collection_04 {
public static void main(String[] args) {
// 创建对象
TreeSet set = new TreeSet();
// 添加
set.add(1);
// 因为TreeSet保证元素必须有序,也就意味着元素类型必须统一,不统一就没有可比性,就不能排序
// set.add('a');
set.add(1);
// 元素不可重复,重复则不添加
System.out.print(set + "\n");
set.add(5);
set.add(4);
set.add(3);
// 元素有序
System.out.print(set);
System.out.println();
// 根据内容删除,不能根据索引删除,因为底层是双向链表,没索引
set.remove(3);
System.out.print(set);
System.out.println();
set.clear();
// 每一位Ascii比较
set.add("aadd");
set.add("ac");
set.add("abbb");
set.add("c");
set.add("b");
System