学会网站建设,聊城专业做网站公司,企业邮箱怎么注册自己的账号,深圳小程序推广Java 集合【补充复习】 Java 集合概述Collection 接口继承树Map 接口继承树 Collection 接口方法使用 iterator 接口遍历集合元素使用 forearch 遍历集合元素 List 接口List 实现类之一#xff1a;ArrayListList 实现类之二#xff1a;LinkedList Set 接口Set 实现类之一ArrayListList 实现类之二LinkedList Set 接口Set 实现类之一HashSetSet 实现类之二LinkedHashSet Map 接口方法Map 实现类之一HashMapMap 实现类之二LinkedHashMap Java 集合概述
Java 中的集合主要分为 Collection 和 Map 两大体系
Collection 接口 Set元素无序、不可重复的集合。List元素有序、可以重复的集合。 Map 接口具有映射关系 key-value 的集合。
Collection 接口继承树 Map 接口继承树 Collection 接口方法
Collection 提供的接口方法set、list 都可以使用。 使用 iterator 接口遍历集合元素
iterator 对象称为迭代器设计模式的一种主要用于遍历 Collection 集合中的元素。所有实现了 Collection 接口的集合类都有一个 iterator() 方法。
Iterator iterator arrayList.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}使用迭代器进行遍历的时候迭代器会创建一个对集合内部的快照并且在遍历的时候期望保持该集合的状态不变。如果迭代过程中集合的元素被改变添加、删除、修改迭代器的内部状态和集合的状态不一致就会抛出异常。 解决办法 使用并发集合删除元素时可以使用迭代器自带的 remove 方法 使用 forearch 遍历集合元素 List 接口
List 接口提供了一些根据索引来操作集合元素的方法
// 向指定位置添加元素
void add(int index, Object obj);// 向指定位置添加一个集合
boolean addAll(int index, Collection objs);// 获取指定位置的元素
Object get(int index);// 返回第一个元素出现的下标
int indexOf(Object obj);// 返回最后一个元素出现的下标
int lastIndexOf(Object obj);// 移除指定位置的元素
Object remove(int index);// 修改指定位置的元素
Object set(int index, Object obj);// 获取集合中的一段元素从 fromIndex 下标开始到 toIndex - 1 下标位置
List subList(int fromIndex, int toIndex);List 实现类之一ArrayList
本质上是一个变成数组默认长度是 10 ArrayList 是线程不安全的Vector 是线程安全的即使为保证 List 线程安全也不推荐使用 Vector。
List 实现类之二LinkedList
对于频繁插入和删除元素的操作建议是 LinkedList效率会高。
新增方法
// 头部插入一个元素
void addFirst(Object obj);// 尾部插入一个元素
void addLast(Object obj);// 获取头部元素
Object getFirst();// 获取尾部元素
Object getLast();// 移除头部元素
Object removeFirst();// 移除尾部元素
Object removeLast();Set 接口
Set 判断两个对象是否相等使用的不是 而是 equals 方法。
Set 实现类之一HashSet
HashSet 不是线程安全的不能保证元素的排列顺序集合元素可以是 null当向 HashSet 集合中存入一个元素时HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值然后根据 hashCode 值来决定该对象在 HashSet 中的存储位置。HashSet 集合判断两个元素相等的标准两个对象通过 hashCode() 方法比较相等并且两个对象的 equals() 方法返回值也相等。
Set 实现类之二LinkedHashSet
LinkedHashSet 是 HashSet 的子类LinkedHashSet 根据元素的 HashCode 值来决定元素的存储位置同时使用链表维护元素的次序。
Map 接口方法
// 添加元素
Object put(Object key, Object value);// 移除元素
Object remove(Object key);// 添加全部元素
void putAll(Map t);// 清除元素
void clear();// 根据 key 查询
Object get(Object key);// 判断 key 是否存在
boolean containsKey(Object key);// 判断 value 是否存在
boolean containsKey(Object value);// 集合大小
int size();// 判断是否为空
boolean isEmpty();// 判断是否相等
boolean equals(Object obj);Map 实现类之一HashMap
HashMap 判断两个 key 相等的标准是两个 key 通过 equals() 返回的 truehashCode() 值也相等。HashMap 判断两个 value 相等的标准是两个 value 通过 equals() 返回的 true。
Map 实现类之二LinkedHashMap
按照插入顺序迭代