博客
关于我
Java SE 第七章泛型和合集--集合类--List接口、Set接口、Map接口
阅读量:368 次
发布时间:2019-03-04

本文共 2969 字,大约阅读时间需要 9 分钟。

Java集合框架是Java编程中的核心工具包,包含多种集合接口和实现类。这些集合接口和实现类在处理数据存储和操作方面起着重要作用。本文将详细介绍List、Set以及Map接口及其实现类。

List接口

List接口是集合框架中最常用的接口之一。它允许元素重复,并且元素的存储顺序与操作顺序一致,支持随机访问。List的主要特点包括:

  • 继承关系:List接口继承自Collection接口。
  • 可重复性:List允许元素重复。
  • 存储顺序:元素按照添加顺序存储,不会重新排列。
  • 随机访问:支持通过索引随机访问元素。
  • 常见实现类

    • ArrayList:基于动态数组实现,具有自动扩展的能力。其内部使用Object[]数组存储元素,支持快速随机访问和修改操作。
    • LinkedList:基于双向链表实现,节点存储元素,支持快速的插入和删除操作。

    ArrayList示例

    import java.util.ArrayList;import java.util.List;public class ArrayListDemo {    public static void main(String[] args) {        List
    arrayList = new ArrayList<>(); arrayList.add("First"); arrayList.add("second"); System.out.println("List size: " + arrayList.size()); // Traversal and modification System.out.println("After adding elements: " + arrayList); List
    arrayList2 = new ArrayList<>(arrayList); System.out.println("Copy of the list: " + arrayList2); // Modify the original list arrayList.add(1, "insert data"); System.out.println("After insertion: " + arrayList); arrayList.remove("second"); System.out.println("After removing 'second': " + arrayList); arrayList.remove(2); System.out.println("After removing third element: " + arrayList); // Convert to array Object[] array = arrayList.toArray(); System.out.println("Array representation: " + array); }}

    Set接口

    Set接口与List不同,它不允许元素重复,并且不影响元素的存储顺序。Set的主要特点包括:

  • 继承关系:Set接口继承自Collection接口。
  • 不可重复性:Set不允许元素重复。
  • 无序存储:Set不保留元素的添加顺序。
  • 快速检索:Set允许快速查找元素是否存在。
  • 常见实现类

    • HashSet:基于哈希表实现,支持快速定位元素。需要重写hashCode和equals方法。
    • TreeSet:基于树结构实现,按升序存储元素,支持快速查找和迭代。

    TreeSet示例

    import java.util.TreeSet;import java.util.Set;public class TreeSetDemo {    public static void main(String[] args) {        TreeSet
    treeSet = new TreeSet<>(); treeSet.add("First"); treeSet.add("second"); treeSet.add("third"); treeSet.add("Forth"); System.out.println("TreeSet contents: " + treeSet); for (String str : treeSet) { System.out.println(str); } }}

    Map接口

    Map接口用于存储键值对,键和值可以是任意对象。Map的核心特点包括:

  • 键值对:每个元素由键和值组成。
  • 无重复键:每个键只能出现一次。
  • 支持快速检索:通过键快速找到对应的值。
  • 常见实现类

    • HashMap:基于哈希表实现,允许 null 值和 null 键。其存储顺序与哈希函数有关。
    • TreeMap:基于树结构实现,按键升序存储,支持快速查找和排序。

    TreeMap示例

    import java.util.TreeMap;import java.util.Map;public class TreeMapDemo {    public static void main(String[] args) {        TreeMap
    treeMap = new TreeMap<>(); treeMap.put("Tom", 23); treeMap.put("Rose", 18); treeMap.put("Jane", 26); treeMap.put("Black", 24); treeMap.put("Smith", 21); System.out.println("TreeMap contents: " + treeMap); for (Map.Entry
    entry : treeMap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } }}

    总结

    Java集合框架提供了丰富的接口和实现类,适用于不同场景。List用于有序的可重复元素存储,Set用于无重复元素存储,Map用于键值对存储。选择合适的集合类型能够提升程序的效率和可读性。在实际开发中,需要根据具体需求选择合适的集合实现类,并合理使用其操作方法。

    转载地址:http://edyg.baihongyu.com/

    你可能感兴趣的文章
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    NTFS文件权限管理实战
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntp server 用法小结
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    ntpdate同步配置文件调整详解
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP服务器
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>