一、为什么使用集合框架?
Java集合框架提供了可以直接使用的各种数据结构和算法。这有两个主要优点:
-
我们不需要手动编写代码来实现这些数据结构和算法。
-
随着集合框架的高度优化,我们的代码将更加高效。
此外,集合框架允许我们对特定类型的数据使用特定的数据结构。这里有一些实例,
-
如果我们希望我们的数据是唯一的,那么我们可以使用集合框架提供的Set接口。
-
要以键/值对的形式存储数据,可以使用Map接口。
-
ArrayList类提供可调整大小的数组的功能。
二、Collection子接口
1.List接口:无法直接创建对象
List接口是一个有序的集合,它允许我们像数组一样添加和删除元素
为了使用List接口的功能,我们可以使用以下类:
import java.util.List;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
//使用ArrayList类创建列表
List<Integer> numbers = new ArrayList<>();
//将元素添加到列表
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("List: " + numbers);
//从列表中访问元素
int number = numbers.get(2);
System.out.println("访问元素: " + number);
//从列表中删除元素
int removedNumber = numbers.remove(1);
System.out.println("删除元素: " + removedNumber);
}
}
2.Map接口:无法直接创建对象
Map元素存储在键/值对中。 键是与各个值相关联的唯一值。
Map集合不能包含重复的键。并且,每个键都与一个值相关联。
为了使用Map接口的功能,我们可以使用以下类:
//使用HashMap类创建Map
Map<Key, Value> numbers = new HashMap<>();
import java.util.Map;
import java.util.HashMap;
class Main {
public static void main(String[] args) {
//使用HashMap类创建map
Map<String, Integer> numbers = new HashMap<>();
//将元素插入map集合
numbers.put("One", 1);
numbers.put("Two", 2);
System.out.println("Map: " + numbers);
//map的键
System.out.println("Keys: " + numbers.keySet());
//map的值
System.out.println("Values: " + numbers.values());
//map的条目
System.out.println("Entries: " + numbers.entrySet());
//从map集合中删除元素
int value = numbers.remove("Two");
System.out.println("被删除的值是: " + value);
}
}
3.Set接口:无法直接创建对象
Set接口允许我们将元素存储在不同的集合中,类似于数学中的集合
为了使用Set接口的功能,我们可以使用以下类:
//使用HashSet实现Set
Set<String> animals = new HashSet<>();
import java.util.Set;
import java.util.HashSet;
class Main {
public static void main(String[] args) {
//使用HashSet类创建集合
Set<Integer> set1 = new HashSet<>();
//将元素添加到set1
set1.add(2);
set1.add(3);
System.out.println("Set1: " + set1);
//使用HashSet类创建另一个集合
Set<Integer> set2 = new HashSet<>();
//添加元素
set2.add(1);
set2.add(2);
System.out.println("Set2: " + set2);
//两个集合的并集
set2.addAll(set1);
System.out.println("并集是: " + set2);
}
}