乐趣区

关于人工智能:34-Java集合框架ListSetMap等

Java 汇合框架是 Java 提供的一套用于存储和操作数据的接口和类。它包含以下几个次要局部:

  1. 接口:汇合框架定义了一系列接口,如 CollectionListSetMap 等。
  2. 实现类:汇合框架提供了一些实现这些接口的类,如 ArrayListLinkedListHashSetLinkedHashSetHashMapLinkedHashMap 等。
  3. 算法:汇合框架提供了一些用于操作汇合的算法,如排序、搜寻等。

咱们将别离介绍这些接口和实现类,并给出相应的示例。

1. Collection 接口

Collection接口是 Java 汇合框架的根接口,它定义了一些用于操作汇合的通用办法。Collection接口有两个次要的子接口:ListSet

以下是 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接口的次要实现类有 ArrayListLinkedList

以下是 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接口的次要实现类有 HashSetLinkedHashSet

以下是 Set 接口的一些罕用办法(实际上与 Collection 接口的办法雷同,因为 Set 接口没有增加新的办法):

  • add(E e):增加一个元素。
  • remove(Object o):删除一个元素。
  • contains(Object o):判断是否蕴含一个元素。
  • size():返回汇合的元素个数。
  • isEmpty():判断汇合是否为空。
  • clear():清空集合。

4. Map 接口

Map接口是一个存储键值对的汇合。Map接口的次要实现类有 HashMapLinkedHashMap

以下是 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<String> arrayList = new ArrayList<>();
        arrayList.add("Apple");
        arrayList.add("Banana");
        arrayList.add("Cherry");
        arrayList.add("Banana");
        System.out.println("ArrayList:" + arrayList);

        List<String> linkedList = new LinkedList<>();
        linkedList.add("Apple");
        linkedList.add("Banana");
        linkedList.add("Cherry");
        linkedList.add("Banana");
        System.out.println("LinkedList:" + linkedList);

        // Set 示例
        Set<String> hashSet = new HashSet<>();
        hashSet.add("Apple");
        hashSet.add("Banana");
        hashSet.add("Cherry");
        hashSet.add("Banana");
        System.out.println("HashSet:" + hashSet);

        Set<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.add("Apple");
        linkedHashSet.add("Banana");
        linkedHashSet.add("Cherry");
        linkedHashSet.add("Banana");
        System.out.println("LinkedHashSet:" + linkedHashSet);

        // Map 示例
        Map<String, Integer> 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<String, Integer> 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}

这个示例演示了如何应用 ArrayListLinkedListHashSetLinkedHashSetHashMapLinkedHashMap类。你能够看到,List接口容许增加反复元素,而 Set 接口不容许。此外,HashMapHashSet 是无序的,而 LinkedHashMapLinkedHashSet是有序的。

心愿这个示例和解释能帮你更好地了解 Java 汇合框架。如果你有任何疑难,请随时向我发问。

举荐浏览:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

退出移动版