1 集合框架概览
Java集合框架主要由以下几个部分组成:
-
List:一个有序的集合,可以包含重复的元素。
-
Set:一个不允许重复的集合,没有固定的顺序。
-
Map:一个键值对集合,键是唯一的,每个键映射到一个值。
2 List接口
List
接口是一个有序的集合,可以包含重复的元素。List
提供了一系列方法来添加、删除和访问元素。
常用的List实现类:
-
ArrayList:基于动态数组实现,支持快速随机访问。
-
LinkedList:基于链表实现,适合频繁的插入和删除操作。
示例代码:
import java.util.ArrayList;
import java.util.LinkedList;
public class ListExample {
public static void main(String[] args) {
// 使用ArrayList
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("Element 1");
arrayList.add("Element 2");
System.out.println(arrayList.get(0)); // 输出:Element 1
// 使用LinkedList
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("Element 1");
linkedList.add("Element 2");
System.out.println(linkedList.get(0)); // 输出:Element 1
}
}
3 Set接口
Set
接口是一个不允许重复的集合,没有固定的顺序。Set
主要用于确保存储的唯一性。
常用的Set实现类:
-
HashSet:基于HashMap实现,插入和查询效率高。
-
LinkedHashSet:类似于HashSet,但维护元素的插入顺序。
-
TreeSet:基于红黑树实现,元素处于排序状态。
示例代码:
import java.util.HashSet;
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
// 使用HashSet
HashSet<Integer> hashSet = new HashSet<>();
hashSet.add(1);
hashSet.add(2);
hashSet.add(1); // 不会添加重复元素
System.out.println(hashSet); // 输出:[1, 2]
// 使用TreeSet
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(2);
treeSet.add(3);
System.out.println(treeSet); // 输出:[1, 2, 3](有序)
}
}
4 Map接口
Map
接口是一个键值对集合,键是唯一的,每个键映射到一个值。Map
提供了一系列方法来存储和检索键值对。
常用的Map实现类:
-
HashMap:基于HashMap实现,基于哈希表的Map接口实现。
-
LinkedHashMap:类似于HashMap,但维护插入顺序。
-
TreeMap:基于红黑树实现,键处于排序状态。
示例代码:
import java.util.HashMap;
import java.util.TreeMap;
public class MapExample {
public static void main(String[] args) {
// 使用HashMap
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("One", 1);
hashMap.put("Two", 2);
System.out.println(hashMap.get("One")); // 输出:1
// 使用TreeMap
TreeMap<String, Integer> treeMap = new TreeMap<>();
treeMap.put("One", 1);
treeMap.put("Two", 2);
System.out.println(treeMap.firstEntry().getValue()); // 输出:1(有序)
}
}
5 集合操作
Java集合框架提供了许多操作集合的方法,如add
、remove
、contains
、size
等。此外,还有集合之间的操作,如addAll
、removeAll
、retainAll
等。
示例代码:
import java.util.ArrayList;
import java.util.Arrays;
public class CollectionOperations {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5));
list1.addAll(list2); // 合并两个列表
list1.removeIf(element -> element < 3); // 移除小于3的元素
System.out.println(list1); // 输出:[3, 4, 5]
}
}
6 迭代器(Iterator)
迭代器是用于遍历集合的接口,它提供了hasNext
和next
方法来遍历集合中的元素。
示例代码:
import java.util.Iterator;
import java.util.ArrayList;
public class IteratorExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}