Java集合框架是Java提供的一套用于存储和操作数据的接口和类。它包括以下几个主要部分:
- 接口:集合框架定义了一系列接口,如
Collection
、List
、Set
、Map
等。 - 实现类:集合框架提供了一些实现这些接口的类,如
ArrayList
、LinkedList
、HashSet
、LinkedHashSet
、HashMap
、LinkedHashMap
等。 - 算法:集合框架提供了一些用于操作集合的算法,如排序、搜索等。
我们将分别介绍这些接口和实现类,并给出相应的示例。
1. Collection接口
Collection
接口是Java集合框架的根接口,它定义了一些用于操作集合的通用方法。Collection
接口有两个主要的子接口:List
和Set
。
以下是Collection
接口的一些常用方法:
-
add(E e)
:添加一个元素。 -
addAll(Collection extends E> c)
:添加一个集合的所有元素。 -
remove(Object o)
:删除一个元素。 -
removeAll(Collection> c)
:删除一个集合的所有元素。 -
contains(Object o)
:判断是否包含一个元素。 -
containsAll(Collection> c)
:判断是否包含一个集合的所有元素。 -
size()
:返回集合的元素个数。 -
isEmpty()
:判断集合是否为空。 -
clear()
:清空集合。
2. List接口
List
接口是一个有序的、可重复的集合。List
接口的主要实现类有ArrayList
和LinkedList
。
以下是List
接口的一些常用方法:
-
get(int index)
:获取指定位置的元素。 -
set(int index, E element)
:设置指定位置的元素。 -
add(int index, E element)
:在指定位置添加一个元素。 -
remove(int index)
:删除指定位置的元素。 -
indexOf(Object o)
:返回一个元素的第一个匹配位置。 -
lastIndexOf(Object o)
:返回一个元素的最后一个匹配位置。
3. Set接口
Set
接口是一个无序的、不可重复的集合。Set
接口的主要实现类有HashSet
和LinkedHashSet
。
以下是Set
接口的一些常用方法(实际上与Collection
接口的方法相同,因为Set
接口没有添加新的方法):
-
add(E e)
:添加一个元素。 -
remove(Object o)
:删除一个元素。 -
contains(Object o)
:判断是否包含一个元素。 -
size()
:返回集合的元素个数。 -
isEmpty()
:判断集合是否为空。 -
clear()
:清空集合。
4. Map接口
Map
接口是一个存储键值对的集合。Map
接口的主要实现类有HashMap
和LinkedHashMap
。
以下是Map
接口的一些常用方法:
-
put(K key, V value)
:添加一个键值对。 -
get(Object key)
:根据键获取值。 -
remove(Object key)
:根据键删除一个键值对。 -
containsKey(Object key)
:判断是否包含一个键。 -
containsValue(Object value)
:判断是否包含一个值。 -
size()
:返回集合的键值对个数。 -
isEmpty()
:判断集合是否为空。 -
clear()
:清空集合。
5. 示例
下面是一个使用Java集合框架的示例:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import java.util.Map;
public class CollectionExample {
public static void main(String[] args) {
// List 示例
List arrayList = new ArrayList();
arrayList.add("Apple");
arrayList.add("Banana");
arrayList.add("Cherry");
arrayList.add("Banana");
System.out.println("ArrayList: " + arrayList);
List linkedList = new LinkedList();
linkedList.add("Apple");
linkedList.add("Banana");
linkedList.add("Cherry");
linkedList.add("Banana");
System.out.println("LinkedList: " + linkedList);
// Set 示例
Set hashSet = new HashSet();
hashSet.add("Apple");
hashSet.add("Banana");
hashSet.add("Cherry");
hashSet.add("Banana");
System.out.println("HashSet: " + hashSet);
Set linkedHashSet = new LinkedHashSet();
linkedHashSet.add("Apple");
linkedHashSet.add("Banana");
linkedHashSet.add("Cherry");
linkedHashSet.add("Banana");
System.out.println("LinkedHashSet: " + linkedHashSet);
// Map 示例
Map hashMap = new HashMap();
hashMap.put("Apple", 1);
hashMap.put("Banana", 2);
hashMap.put("Cherry", 3);
hashMap.put("Banana", 4);
System.out.println("HashMap: " + hashMap);
Map linkedHashMap = new LinkedHashMap();
linkedHashMap.put("Apple", 1);
linkedHashMap.put("Banana", 2);
linkedHashMap.put("Cherry", 3);
linkedHashMap.put("Banana", 4);
System.out.println("LinkedHashMap: " + linkedHashMap);
}
}
输出结果:
ArrayList: [Apple, Banana, Cherry, Banana]
LinkedList: [Apple, Banana, Cherry, Banana]
HashSet: [Apple, Banana, Cherry]
LinkedHashSet: [Apple, Banana, Cherry]
HashMap: {Apple=1, Banana=4, Cherry=3}
LinkedHashMap: {Apple=1, Banana=4, Cherry=3}
这个示例演示了如何使用ArrayList
、LinkedList
、HashSet
、LinkedHashSet
、HashMap
和LinkedHashMap
类。你可以看到,List
接口允许添加重复元素,而Set
接口不允许。此外,HashMap
和HashSet
是无序的,而LinkedHashMap
和LinkedHashSet
是有序的。
希望这个示例和解释能帮你更好地理解Java集合框架。如果你有任何疑问,请随时向我提问。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
HTTP错误 访问 Web 服务器或应用程序时,服务器收到的每个 HTTP 请求都会以 HTTP 状态代码进行响应。 HTTP 状态代码是三位数代码,分为五个不同的类别。 状态代码的类别可以通过它的第一个数字快速识别: 1xx:信息 2xx:成功 3xx:重定…