1 集合
1.1 集合的类型与各自的特性
集合关系结构 ---|Collection: 单列集合 ---|List: 有存储顺序,可重复 ---|ArrayList: 数组实现, 查找快, 增删慢由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素.所以慢。数组是可以直接按索引查找,所以查找时较快 ---|LinkedList: 链表实现, 增删快, 查找慢由于链表实现,增加时只要让前一个元素记住自己就可以,删除时让前一个元素记住后一个元素,后一个元素记住前一个元素.这样的增删效率较高但查询时需要一个一个的遍历,所以效率较低 ---|Vector: 和ArrayList原理相同,但线程安全,效率略低和ArrayList实现方式相同,但考虑了线程安全问题,所以效率略低 ---|Set: 无存储顺序,不可重复 ---|HashSet 线程不安全,存取速度快。底层是以哈希表实现的。 ---|TreeSet 红-黑树的数据结构,默认对元素进行自然排序(String)。如果在比较的时候两个对象返回值为0,那么元素重复。 2.TreeSet内添加元素,如果元素不具备自然排序的特性那么元素所属的内就必须实现Comparable接口,重新定义规则在compareTo方法上.或者用匿名内部类的方式自定义比较方式;定义比较器Comparator。 1.实现Compareble接口重写conpareTo方法 class Student implements Comparable<Student >{ //我们对学生进行排序,先按年龄,再按照名字的自然顺序 @Override } 2.TreeSet用匿名内部类的方式自定义比较方式;定义比较器Comparator TreeSet <Student> treeSet=new TreeSet<>(new Comparator<Student>() { 3.测试 treeSet.add(new Student(20, "赵六")); 输出: ---| Map: 键值对 键不可重复,值可以重复 ---|HashMap 线程不安全,存取速度快。底层是以哈希表实现的. ---|TreeMap 红-黑树的数据结构,默认对元素进行自然排序(String)。如果在比较的时候两个对象返回值为0,那么元素重复 ---|HashTable 底层也是使用了哈希表 维护的,存取的读取快,存储元素是无序的。 |