文章目录
- 一、Java 集合框架体系结构
- 二、Collection 集合体系的基本特点
- 三、Collection 接口中的常用方法
- 四、List 接口中的常用方法
一、Java 集合框架体系结构
Java 集合框架主要可以分为 单列集合 和 双列集合 两大体系:
- 单列集合:List、Set、Queue 等接口的实现类,如 ArrayList、LinkedList、HashSet、TreeSet 等。
- 双列集合:Map 接口的实现类,如 HashMap、TreeMap 等。
二、Collection 集合体系的基本特点
1.有的集合允许元素重复,有的不允许
List:允许重复
List<String>list=newArrayList<>();list.add("Java");list.add("Java");list.add("MySQL");System.out.println(list);// [Java, Java, MySQL]Set:不允许重复
Set<String>set=newHashSet<>();set.add("Java");set.add("Java");set.add("MySQL");System.out.println(set);// Java 只会保留一个2. 有的集合有序,有的集合无序
这里的“有序”通常指元素的存取顺序是否一致。
ArrayList:有序
List<String>list=newArrayList<>();list.add("A");list.add("B");list.add("C");System.out.println(list);// [A, B, C]按照 A → B → C 的顺序存入,遍历时也是这个顺序。
HashSet:不保证顺序
Set<String>set=newHashSet<>();set.add("A");set.add("B");set.add("C");System.out.println(set);HashSet不保证遍历顺序与添加顺序一致。
三、Collection 接口中的常用方法
| 方法 | 说明 |
|---|---|
boolean add(E e) | 添加元素 |
boolean addAll(Collection<? extends E> c) | 添加另一个集合中的所有元素 |
boolean remove(Object o) | 删除指定元素 |
boolean removeAll(Collection<?> c) | 删除当前集合中所有属于指定集合的元素 |
void clear() | 清空集合 |
boolean contains(Object o) | 判断是否包含指定元素 |
boolean containsAll(Collection<?> c) | 判断是否包含指定集合中的所有元素 |
int size() | 获取元素个数 |
boolean isEmpty() | 判断集合是否为空 |
Iterator<E> iterator() | 获取迭代器,用于遍历集合 |
示例:
Collection<String>collection=newArrayList<>();collection.add("Java");collection.add("MySQL");collection.add("Redis");System.out.println(collection.size());// 3System.out.println(collection.contains("Java"));// truecollection.remove("MySQL");System.out.println(collection);// [Java, Redis]四、List 接口中的常用方法
List 继承自 Collection,因此拥有 Collection 中的全部方法。
除此之外,由于 List 中的元素具有明确的位置顺序,可以通过下标操作元素,因此提供了一些与索引相关的方法。
| 方法 | 说明 |
|---|---|
void add(int index, E element) | 在指定位置插入元素 |
boolean addAll(int index, Collection<? extends E> c) | 从指定位置开始插入一个集合 |
E get(int index) | 获取指定下标的元素 |
E set(int index, E element) | 修改指定下标的元素,并返回原元素 |
E remove(int index) | 删除指定下标的元素,并返回被删除元素 |
int indexOf(Object o) | 获取元素第一次出现的下标 |
int lastIndexOf(Object o) | 获取元素最后一次出现的下标 |
ListIterator<E> listIterator() | 获取 List 专用迭代器 |
List<E> subList(int fromIndex, int toIndex) | 获取指定范围的子列表 |
void sort(Comparator<? super E> c) | 按指定规则排序 |
示例:
List<String>list=newArrayList<>();list.add("Java");list.add("MySQL");list.add("Redis");// 指定位置插入list.add(1,"Spring");System.out.println(list);// [Java, Spring, MySQL, Redis]// 获取元素System.out.println(list.get(1));// Spring// 修改元素list.set(1,"Spring Boot");// 删除指定位置的元素list.remove(2);System.out.println(list);// [Java, Spring Boot, Redis]