首页 > 编程语言 >Java 常用集合方法详解

Java 常用集合方法详解

时间:2024-09-11 12:53:09浏览次数:10  
标签:Map java map 代码 list 详解 复制 集合 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 编程中更高效地操作数据结构,提高代码的性能和可维护性。希望通过本文的讲解,你能够更好地运用这些集合类的方法,解决实际开发中的问题。

标签:Map,java,map,代码,list,详解,复制,集合,Java
From: https://blog.csdn.net/m0_68570169/article/details/142071598

相关文章

  • Java 排序算法详解
    排序是计算机科学中的基本操作,Java提供了多种排序算法来满足不同的需求。常见的排序算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序和堆排序。本文将逐一介绍这些排序算法及其Java实现。1.冒泡排序(BubbleSort)冒泡排序是一种简单的排序算法,其基本思想是......
  • 零基础国产GD32单片机编程入门(十六)DMA详解及ADC-DMA方式采集含源码
    文章目录一.概要二.GD32F103C8T6单片机DMA外设特点三.GD32单片机DMA内部结构图四.DMA各通道请求五.GD32F103C8T6单片机ADC-DMA采集例程六.工程源代码下载七.小结一.概要基本概念:DMA是DirectMemoryAccess的首字母缩写,是一种完全由硬件执行数据交换的工作方式。DM......
  • 【卷起来】VUE3.0教程-06-组件详解
    ============各位看官,点波关注和赞吧===========组件允许我们将UI划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构:这和我们嵌套HTML元素的方式类似,Vue实现了自己的组件模型,使我们可以在每个组件内封装......
  • 【高级编程】Java IO流(补)序列化 & 反序列化
    序列化(ObjectOutputStream)&反序列化(ObjectInputStream)Java的序列化和反序列化是用于将对象转换为字节流的过程,以便在网络上传输或保存到磁盘,然后将这些字节流再转换回对象。这个过程是Java中处理对象持久化和传输的常见方法。序列化是将对象的状态转换为字节流的过......
  • 基于JavaWeb开发的java eclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版
    基于JavaWeb开发的javaeclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版......
  • 【高级编程】Java IO流(下)字符流 Reader Writer 字节流读取二进制文件
    文章目录ReaderFileReaderBufferedReaderWriterFileWriterBufferedWriter读写二进制文件ReaderReader是一个抽象类,用于读取字符流。它是所有字符输入流的基类。Reader提供了一些基本的方法来读取字符数据intread()//读取单个字符,并返回一个整数。如果到达流......
  • 【高级编程】认识Java多线程 代码举例三种创建线程的方式
    文章目录主线程创建线程方式1:Thread方式2:Runnable方式3:Callable进程:应用程序的执行实例,有独立的内存空间和系统资源线程:CPU调度和分派的基本单位,进程中执行运算的最小单位,可完成一个独立的顺序控制流程多线程:如果在一个进程中同时运行了多个线程,用来完成不同的工......
  • java常规web面试题考点
    在java的理论知识中,有一个模块作为最基础的组成,但在学习的难度上较大所以往这方面发展的人不多。其实这就是web模块,开发一些软件都离不开web方面的理论支撑。web面试题主要考察一些基础开发的工具的用法和实际代码运用的试题,下面我们来就具体的题目进行作答。1.网络编程首先要......
  • 全网最火的AI技术:GraphRag概念详解
    GraphRAG是一种结合了知识图谱(KnowledgeGraph)和大语言模型(LLM)的检索增强生成(Retrieval-AugmentedGeneration,RAG)技术,旨在通过将结构化和非结构化数据相结合来增强生成式AI的表现。它的出现代表了人工智能生成技术与知识表示领域的一次重要融合,为许多需要复杂信息检索和生成的应......
  • 【JAVA】第五天
    【JAVA】第五天一、Math类二、System类三、Runtime类四、BigDecimal类五、JDK8之前传统的日期、时间(不推荐)1.Date类2.SimpleDateFormat类3.Calendar类六、JDK8之后新增的日期、时间1.LocalDateTime类2.ZoneId类3.ZonedDateTime类4.Instant类5.DateTimeFormatter类6.Peri......