概述
集合的体系结构
- 单列集合:Collection接口
List接口
Set接口 - 双列集合:Map接口
List集合
-
list集合的特征:
1、有序
2、元素可以重复
3、有索引 -
ArrayList集合(重点*****)
底层:数组结构,查询快,增删慢。
常用的方法:-
增/添加:
boolean add(E e):添加一个元素到集合末尾,返回值表示是否添加成功,默认都是返回true。
void add(int index,E e):在指定索引index处添加元素e。 -
删/移除:
void remove(E e):直接移除元素。
E remove(int index):移除指定索引index处的值,返回值是被移除的元素 -
改/设置:
E set(int index,E e):将索引index处的值设置为新元素e,返回值是被修改的元素 -
查/获取:
E get(int index):或者指定索引index处的值。
int size():获取集合的长度。 -
两种重要遍历方式:
for(int i=0;i<list.size();i++){
E e=list.get(i);
}
--------------------------------
for(E e:list集合对象){}
注意事项:在增强for循环中,不能添加元素和移除元素,否则出现并发修改异常。如果在遍历的过程中需要添加元素或者移除元素,那么使用fori的方式遍历,通过可以考虑倒着遍历。
-
-
LinkedList集合:
底层:链表结构,查询慢,增删快。Set集合
-
Set集合的特征:
1、无序
2、元素不能重复
3、没有索引 -
HashSet集合:(重点*****)
底层结构:哈希表结构=数组+链表
常用方法:
都是Collection结构中的通用方法。add() remove() size() -
HashSet集合中存储元素唯一的条件:
元素要重写hashCode()和equals()方法。 -
LinkedHashSet集合:
特殊:有序,指的是存和取的顺序一致。
底层:链表+哈希表结构
LinkedHashSet集合中存储元素唯一的条件:
元素要重写hashCode()和equals()方法。 -
TreeSet集合:
特殊:集合中的元素默认会自然排序。
底层结构:树结构
实现元素排序的条件:
1、元素实现Comparable接口,重写compareTo()方法,在该方法中定义排序规则。
2、元素不需要实现Comparable接口,但是在创建TreeSet集合时,构造方法中需要传递一个Comparator比较器对象,在比较器的
compare方法中定义比较规则。
比较规则:
自己和别人比表示升序,别人和自己比表示降序,比较结果为0,则表示相等,如果所有条件到相等,那么值会覆盖。
泛型:要求大家在使用api的过程中,如果api有泛型,那么我们只要会确定泛型的具体类型即可,例如使用ArrayList。
概念:将数据的类型参数化。 -
泛型的分类:
泛型类:在类名后面定义泛型,在这个类中任何地方都可以使用该泛型。 例如:public class 类名{}
泛型方法:
泛型接口:
Map集合
- 可变参数
概念:类型确定,参数的个数不确定就叫做可变参数。
用途:在定义方法的时候,如果参数的类型确定,数量不确定,那么就可以使用可变参数。
语法:public static 返回值类型 方法名(数据类型… 变量名){}
注意实现:一个方法的参数列表中只能有一个可变参数,并且可变参数位于参数列表的末尾。 - Map集合-HashMap集合
常用的方法:
增/添加/替换/修改:
V put(K key,V value):添加元素获取替换元素,如果key不存在返null,如果key存在,那么返回被替换的值。
删/移除:
V remove(K key):根据key移除元素,返回值为被移除的元素值。
查/获取:
V get(K key):根据key获取对应的value值。
Set keySet(): 获取所有的key,保存到set集合中,用于遍历map集合
Set<Map.Entry<K,V>> entrySet():获取所有的键值对对象,用于遍历map集合- 两种重要遍历方式:
方式1:键找值的方式
Set keys=map.keySet();
for(K key:keys){
//根据key获取对应的value值
V value=map.get(key);
}
--------------------------------
方式2;键值对对象的方式
Set<Map.Entry<K,V>> entries= map.entrySet()
for(Map.Entry<K,V> entry:entries){
K key=entry.getKey();
V value=entry.getValue();
}
- 两种重要遍历方式:
- Collections集合工具类
1 Collection和Collections的区别?
Collection是单列集合的顶层接口,Collections是操作集合的工具类。
2 Collections的常用方法:
static void shuffle(List<?> list):随机打乱集合中元素的顺序。
static <T extends Comparable<? super T>> void sort(List list):
对list集合中的元素进行自然排序,list集合中的元素必须要实现Comparable接口
static void sort(List list, Comparator<? super T> c):
对list集合中的元素使用Comparator比较器进行排序
最后
以上就是简单柠檬为你收集整理的Java进阶 -- 集合总结的全部内容,希望文章能够帮你解决Java进阶 -- 集合总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复