java - collection集合知识思维导图-爱代码爱编程
- List集合
- ArrayList(用的最多)
集合特点:有序,可重复,有索引
底层是基于数组实现的,根据查询元素快,增删相对慢。
- LinkedList
集合特点:有序,可重复,有索引
底层基于双链表实现的,查询元素慢,增删首尾元素是非常快的。
- ArrayList(用的最多)
- Set集合
- TreeSet
集合特点:排序、不重复、无索引
底层基于红黑树,对于自定义类需要自定义排序规则
当两种方法同时存在,根据距离优先原则默认使用集合有参数构造器- 自定义排序方法一
让自定义的类(如学生类)实现Comparable接口重写里面的compareTo方法来定制比较规则。例如:
@Override
public int compareTo(SetDemo1_Apple o) {
//按照重量排序
return this.Weight - o.Weight >= 0 ? 1 : -1; //三目运算符(保留重量相等的数据)
}
- 自定义排序方法二
TreeSet集合有参数构造器,可以设置Comparator接口对应的比较器对象,来定制比较规则。例如:
Set<SetDemo1_Apple> set4 = new TreeSet<>(new Comparator<SetDemo1_Apple>() {
@Override
public int compare(SetDemo1_Apple o1, SetDemo1_Apple o2) {
return o1.getWeight() - o2.getWeight() >= 0 ? 1 : -1; }
});
- 自定义排序方法一
- HashSet
集合特点:无序、不重复、无索引
底层基于哈希表,可调用hashCode()方法- LinkedHashSet
集合特点:有序、不重复、无索引
- LinkedHashSet
- TreeSet