1 JAVA集合概述: 2 3 Collection: 4 |---List有序的:通过索引就可以精确的操作集合中的元素。元素是可以重复的。 5 List提供了增删改查的动作。 6 增加add(element) add(index,element); 7 删除remove(element) remove(index); 8 修改set(index,element); 9 查询get(index); 10 |---Vector:是可增长的数组结构。是同步的。增和查速度都慢,效率很低.目前不在使用。 11 |---ArrayList:是数组结构,长度可变的,(原理是:创建新数组+复制数组,查询速度很快)是不同步的。 12 |---LinkedList:是链表结构,不同步的,增删的速度很快。查询速度较慢. 13 可用于实现堆栈和队列. 14 堆栈:先进后出First in Last Out FILO 手枪弹夹 15 队列:先进先出First in First Out FIFO 排队买票 16 List是可以存储重复元素的,如果需求中要求容器中的元素必须唯一性.则看下面的Set集合. 17 18 |---Set:不包含重复集合元素的集合。而且方法和Collection一致。set集合取出元素只有一种:迭代器. 19 |--HashSet:哈希表结构,不同步,保证元素唯一性的方式依赖于:hashCode(),equals()方法,查询速度快,只能针对证唯一性的元素。 20 |--TreeSet:可以对set集合中的元素进行排序,使用的是二叉树结构,如何保证元素唯一性呢? 21 使用的对象比较的方法的结果是否为0,是0,视为相同元素,不存。 22 元素的排序比较方式有两种: 23 1,元素自身具备自然排序,其实就是实现了Comparable接口重写了compareTo方法 24 如果元素自身不具备自然排序,或者具备的自然排序不是所需要的,这时只能用第二种方式 25 2,比较器:其实就是在创建TreeSet集合时,在构造函数中指定具体的比较方式。 26 需要定义一个类实现Comparator接口,重写compare方法 27 到此为止,再往集合中存储对象时,通常该对象都需要覆盖hashCode,equals方法 28 同时实现Comparable接口,建立对象的自然排序。通常还有一个方法也会复写toString(); 29 30 看集合的小技巧: 31 集合分体系:List Set 32 子类对象的后缀名都是所属体系,前缀名都是数据结构名称. 33 List:新出的子类都是以List结尾的,通常都是非同步的。 34 |--ArrayList : 看到array,就知道数组,查询速度快 35 |--LinkedList : 看到link,就知道链表,增删速度快 36 37 Set: 38 |--HashSet:看到hash,就知道哈希表,查询速度更快,并想到元素唯一,通过hashCode(),equals方法保证元素唯一性 39 |--TreeSet:看到tree,就知道二叉树,可以排序,排序想到Comparable-compareTo Comparator-compare方法 40 41
时间: 2024-11-05 01:16:30