Java 常用集合方法详解

在 Java 编程中,集合框架提供了丰富的数据结构和算法来存储和操作数据。集合框架主要包含了 ListSetMap 接口,其中 ListMap 是最常用的接口。本文将深入探讨 ListMap 接口下的集合类及其常用方法,包括实际应用示例和代码片段。

1. List 接口及其常用方法

List 接口是一个有序集合,它允许重复的元素。List 接口的实现类包括 ArrayListLinkedListVector 等。下面是 List 接口的主要实现类及其常用方法。

1.1 ArrayList

ArrayList 是一个动态数组实现的 List,提供了快速的随机访问性能。其主要方法包括:

  • add(E e)

    向列表中添加一个元素。

    复制代码

    java

    复制代码

    ArrayList<String> list = new ArrayList<>(); list.add("Hello"); list.add("World");

  • add(int index, E element)

    在指定位置插入元素。

    复制代码

    java

    复制代码

    list.add(1, "Java");

  • remove(Object o)

    删除首次出现的指定元素。

    复制代码

    java

    复制代码

    list.remove("Hello");

  • remove(int index)

    删除指定位置的元素。

    复制代码

    java

    复制代码

    list.remove(0);

  • get(int index)

    获取指定位置的元素。

    复制代码

    java

    复制代码

    String item = list.get(0);

  • set(int index, E element)

    替换指定位置的元素。

    复制代码

    java

    复制代码

    list.set(1, "Programming");

  • size()

    返回列表中的元素数量。

    复制代码

    java

    复制代码

    int size = list.size();

  • contains(Object o)

    检查列表是否包含指定元素。

    复制代码

    java

    复制代码

    boolean hasJava = list.contains("Java");

  • clear()

    清空列表中的所有元素。

    复制代码

    java

    复制代码

    list.clear();

  • isEmpty()

    检查列表是否为空。

    复制代码

    java

    复制代码

    boolean empty = list.isEmpty();

  • indexOf(Object o)

    返回指定元素的第一次出现位置。

    复制代码

    java

    复制代码

    int index = list.indexOf("Programming");

  • toArray()

    将列表转换为数组。

    复制代码

    java

    复制代码

    String[] array = list.toArray(new String[0]);

1.2 LinkedList

LinkedList 是一个双向链表实现的 List,适用于频繁插入和删除操作。其方法包括:

  • addFirst(E e)

    在链表的开头添加元素。

    复制代码

    java

    复制代码

    LinkedList<String> linkedList = new LinkedList<>(); linkedList.addFirst("Start");

  • addLast(E e)

    在链表的末尾添加元素。

    复制代码

    java

    复制代码

    linkedList.addLast("End");

  • removeFirst()

    移除链表的第一个元素。

    复制代码

    java

    复制代码

    linkedList.removeFirst();

  • removeLast()

    移除链表的最后一个元素。

    复制代码

    java

    复制代码

    linkedList.removeLast();

  • getFirst()

    获取链表的第一个元素。

    复制代码

    java

    复制代码

    String first = linkedList.getFirst();

  • getLast()

    获取链表的最后一个元素。

    复制代码

    java

    复制代码

    String last = linkedList.getLast();

  • listIterator()

    获取链表的 ListIterator。

    复制代码

    java

    复制代码

    ListIterator<String> iterator = linkedList.listIterator();

1.3 Vector

Vector 是一个线程安全的 List 实现,它的主要方法与 ArrayList 类似,不过通常不推荐使用,因为其线程安全特性在现代应用中不如 CopyOnWriteArrayList 实用。

2. Map 接口及其常用方法

Map 接口是一种映射关系的集合,它将键映射到值。Map 接口的实现类包括 HashMapTreeMapLinkedHashMap 等。下面是 Map 接口的主要实现类及其常用方法。

2.1 HashMap

HashMap 是基于哈希表的 Map 实现,不保证顺序。其主要方法包括:

  • put(K key, V value)

    将指定的值与指定的键相关联。

    复制代码

    java

    复制代码

    HashMap<String, Integer> map = new HashMap<>(); map.put("One", 1); map.put("Two", 2);

  • get(Object key)

    获取指定键所映射的值。

    复制代码

    java

    复制代码

    Integer value = map.get("One");

  • remove(Object key)

    移除指定键的映射。

    复制代码

    java

    复制代码

    map.remove("Two");

  • containsKey(Object key)

    检查是否包含指定键。

    复制代码

    java

    复制代码

    boolean hasKey = map.containsKey("One");

  • containsValue(Object value)

    检查是否包含指定值。

    复制代码

    java

    复制代码

    boolean hasValue = map.containsValue(1);

  • size()

    返回映射中的键值对数量。

    复制代码

    java

    复制代码

    int size = map.size();

  • clear()

    清空映射中的所有键值对。

    复制代码

    java

    复制代码

    map.clear();

  • keySet()

    返回映射中所有键的 Set 视图。

    复制代码

    java

    复制代码

    Set<String> keys = map.keySet();

  • values()

    返回映射中所有值的 Collection 视图。

    复制代码

    java

    复制代码

    Collection<Integer> values = map.values();

  • entrySet()

    返回映射中所有键值对的 Set 视图。

    复制代码

    java

    复制代码

    Set<Map.Entry<String, Integer>> entries = map.entrySet();

2.2 TreeMap

TreeMap 是一个基于红黑树的 Map 实现,能够保持键的自然顺序或按指定的比较器排序。其主要方法包括:

  • firstKey()

    获取映射中的最小键。

    复制代码

    java

    复制代码

    String firstKey = treeMap.firstKey();

  • lastKey()

    获取映射中的最大键。

    复制代码

    java

    复制代码

    String lastKey = treeMap.lastKey();

  • ceilingKey(K key)

    获取大于等于指定键的最小键。

    复制代码

    java

    复制代码

    String ceilingKey = treeMap.ceilingKey("SomeKey");

  • floorKey(K key)

    获取小于等于指定键的最大键。

    复制代码

    java

    复制代码

    String floorKey = treeMap.floorKey("SomeKey");

2.3 LinkedHashMap

LinkedHashMap 是一个保留插入顺序的 Map 实现。它的主要方法与 HashMap 相似,但在遍历时会按插入顺序进行。

总结

本文详细介绍了 Java 集合框架中 ListMap 接口的常用方法及其实现类。List 接口主要关注有序和重复元素的存储,而 Map 接口则用于键值对的映射。理解和掌握这些集合方法可以帮助你在 Java 编程中更高效地操作数据结构,提高代码的性能和可维护性。希望通过本文的讲解,你能够更好地运用这些集合类的方法,解决实际开发中的问题。

相关推荐
Tanecious.2 小时前
机器视觉--python基础语法
开发语言·python
ALe要立志成为web糕手2 小时前
SESSION_UPLOAD_PROGRESS 的利用
python·web安全·网络安全·ctf
战族狼魂2 小时前
CSGO 皮肤交易平台后端 (Spring Boot) 代码结构与示例
java·spring boot·后端
niandb3 小时前
The Rust Programming Language 学习 (九)
windows·rust
Tttian6223 小时前
Python办公自动化(3)对Excel的操作
开发语言·python·excel
xyliiiiiL3 小时前
ZGC初步了解
java·jvm·算法
杉之4 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
蹦蹦跳跳真可爱5894 小时前
Python----机器学习(KNN:使用数学方法实现KNN)
人工智能·python·机器学习
hycccccch4 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
独好紫罗兰4 小时前
洛谷题单2-P5713 【深基3.例5】洛谷团队系统-python-流程图重构
开发语言·python·算法