Bootstrap

列表、集合与映射:存储你的Java宝藏

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集合框架提供了许多操作集合的方法,如addremovecontainssize等。此外,还有集合之间的操作,如addAllremoveAllretainAll等。

示例代码:

 
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)

迭代器是用于遍历集合的接口,它提供了hasNextnext方法来遍历集合中的元素。

示例代码:

 
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);
        }
    }
}

;