集合

Collection单列集合有List 和 Set

List集合有:

ArrayList集合

特点:
1.存取有序 可以重复 有索引
2.底层是数组实现,查询快,增删慢
ArrayList底层:

1.ArrayList底层是一个数组

2.当初始化ArrayList,数组的长度为0

3.当第一次添加的时候,数组的长度为10

4.以后添加时,如果数组的长度不满足时,进行扩容 ,按1.5来进行扩容

5.扩容之后,将原数组中的元素拷贝到新的数组中

ArrayList的特有方法
ArrayList是Collection接口的实现类调用方法:

LinkedList集合

特点:

1.存取有序 可以重复 有索引

2.底层是链表结构实现,查询慢 增删快
特有方法:

set集合有

hashset集合

特点

1.不可以存储重复元素 存储顺序不一致 没有索引 底层是hash表

2.没有索引,可以使用迭代器和增强for进行操作

HashSet是Collection接口的实现类调用方法:

TreeSet集合

特点

1.不能存储重复的元素 没有索引

2.可以将元素按照规则进行排序

3.没有索引,可以使用迭代器和增强for进行操作

4.TreeSet的原理是红黑数,先获取左边,再获取中间,最后获取右边

TreeSet是Collection接口的实现类调用方法:

排序的方式有:

1.自然排序Comparable的使用

  1. 使用空参构造创建TreeSet集合

    • 用TreeSet集合存储自定义对象,无参构造方法使用的是自然排序对元素进行排序的

  2. 自定义的Student类实现Comparable接口

    • 自然排序,就是让元素所属的类实现Comparable接口,重写compareTo(T o)方法

  3. 重写接口中的compareTo方法

    • 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

2.比较器排序Comparator的使用

  • 用TreeSet集合存储自定义对象,带参构造方法使用的是比较器排序对元素进行排序的

  • 比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法

  • 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写

Map双列集合有HashMap和 TreeMap

Map集合的定义:

Map集合又称为双列集合,双列集合中每个元素中有两个值,主要用于存储具有映射关系的数据,这种关系是一一对应的

Map集合的特点:

键不能重复,值可以重复

键与值之间是一一对应的关系

(键+值)这个整体我们称之为"键值对"或"键值对对象",在Java中又叫"Entry对象"

HashMap集合

特点:2

HashMap底层是哈希表结构

依赖hashCode方法和equals方法保证键的唯一

如果键要存储自定义对象,需要重写hashCode和equals方法

方法介绍

第一种遍历方式

先把双列集合转为单列集合,再进行遍历

第二种遍历方式

先把双列集合转为单列集合,再进行遍历

TreeMap集合

特点: 可以排序

TreeMap底层是红黑树结构

依赖自然排序或者比较器排序,对键进行排序

如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则

方法和HashMap一样

第一种遍历方式

先把双列集合转为单列集合,再进行遍历

第二种遍历方式

先把双列集合转为单列集合,再进行遍历

12-30 13:24