集合 Collection单列集合有List 和 Set

标签:pareto   obj   treemap   有序   介绍   treeset   span   rem   nta   

集合

Collection单列集合有List 和 Set

List集合有:

ArrayList集合

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

1.ArrayList底层是一个数组

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

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

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

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

ArrayList的特有方法
方法名描述
void add(int index,E element)在此集合中的指定位置插入指定的元素
E remove(int index)删除指定索引处的元素,返回被删除的元素
E set(int index,E element)修改指定索引处的元素,返回被修改的元素
E get(int index)返回指定索引处的元素
ArrayList是Collection接口的实现类调用方法:
方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
boolean removeIf(Object o)根据条件进行移除
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

LinkedList集合

特点:

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

2.底层是链表结构实现,查询慢 增删快

 

特有方法:
方法名说明
public void addFirst(E e)在该列表开头插入指定的元素
public void addLast(E e)将指定的元素追加到此列表的末尾
public E getFirst()返回此列表中的第一个元素
public E getLast()返回此列表中的最后一个元素
public E removeFirst()从此列表中删除并返回第一个元素
public E removeLast()从此列表中删除并返回最后一个元素

set集合有

hashset集合

特点

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

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

 

HashSet是Collection接口的实现类调用方法:
方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
boolean removeIf(Object o)根据条件进行移除
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

 

TreeSet集合

特点

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

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

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

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

 

TreeSet是Collection接口的实现类调用方法:
方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
boolean removeIf(Object o)根据条件进行移除
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

 

排序的方式有:

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方法

 

方法介绍

方法名说明
V put(K key,V value)添加元素
V remove(Object key)根据键删除键值对元素
void clear()移除所有的键值对元素
boolean containsKey(Object key)判断集合是否包含指定的键
boolean containsValue(Object value)判断集合是否包含指定的值
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中键值对的个数

第一种遍历方式

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

方法名说明
Set<K> keySet()获取所有键的集合
V get(Object key)根据键获取值

第二种遍历方式

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

方法名说明
Set<Map.Entry<K,V>>entrySet()获取所有键值对对象集合
K getKey()获得键值
V getValue()获得值

TreeMap集合

特点: 可以排序

TreeMap底层是红黑树结构

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

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

 

方法和HashMap一样

第一种遍历方式

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

方法名说明
Set<K> keySet()获取所有键的集合
V get(Object key)根据键获取值

第二种遍历方式

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

方法名说明
Set<Map.Entry<K,V>>entrySet()获取所有键值对对象集合
K getKey()获得键值
V getValue()获得值

集合 Collection单列集合有List 和 Set

标签:pareto   obj   treemap   有序   介绍   treeset   span   rem   nta   

原文地址:https://www.cnblogs.com/ma13461749958/p/14235395.html

版权声明:完美者 发表于 2021-01-07 12:26:22。
转载请注明:集合 Collection单列集合有List 和 Set | 完美导航

暂无评论

暂无评论...