首页 > 编程语言 >列表、集合与映射:存储你的Java宝藏

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

时间:2025-01-02 22:02:11浏览次数:7  
标签:Java 映射 java ArrayList util add import 宝藏 public

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

标签:Java,映射,java,ArrayList,util,add,import,宝藏,public
From: https://blog.csdn.net/wang543203/article/details/144895687

相关文章

  • Java 后端入门
    我们将使用SpringBoot构建一个简单的后端项目,SpringBoot是一个流行的Java后端框架。创建SpringBoot项目:使用SpringInitializr来生成一个SpringBoot项目。选择需要的依赖,比如SpringWeb。Project选择MavenLanguage选择JavaSpringBoot选择最新的非......
  • Java中使用JFreeChart生成甘特图
    引言甘特图是一种流行的项目管理工具,用于显示项目的进度和任务分配。它通过条形图显示任务的开始和结束时间,使项目经理能够直观地了解项目的整体情况。在Java开发中,JFreeChart是一个强大的开源图表库,能够生成各种类型的图表,包括甘特图。本文将详细介绍如何在Java中使用JFreeChart......
  • Java 线程相关的面试题
    Java线程相关的面试题是许多企业在考察Java并发编程能力时的重点内容。以下是一些常见的面试题及答案思路。1.什么是线程?线程和进程的区别是什么?线程是操作系统调度的最小单位,是进程中的一个执行单元。进程是资源分配的基本单位,每个进程拥有独立的内存空间。区别:线......
  • 基于java的SpringBoot/SSM+Vue+uniapp的多媒体素材管理系统的详细设计和实现(源码+lw+
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于java的SpringBoot/SSM+Vue+uniapp的在线政务服务中心的详细设计和实现(源码+lw+部
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 咱们一起学 Java(109)
    咱们一起学Java(109)在之前的学习中,我们已经熟练掌握了复选框组件在Java图形程序中的应用,能够为用户提供多种选择的功能。今天,我们将深入学习单选按钮(JRadioButton)组件,了解其在实现互斥选择功能方面的特点和用法。单选按钮在图形界面设计中常用于需要用户从多个选项中选择唯......
  • 咱们一起学 Java(108)
    咱们一起学Java(108)在之前的学习中,我们已经熟练掌握了Java图形程序中多种文本输入组件(如文本域、密码域、文本区)以及滚动窗格的使用方法,能够构建出具有丰富文本交互功能的界面。今天,我们将聚焦于选择组件中的复选框(JCheckBox),学习如何使用复选框为用户提供简单的“是/否”或......
  • 咱们一起学 Java(107)
    咱们一起学Java(107)在之前的学习中,我们已经掌握了文本域和标签组件在Java图形程序中的使用,能够构建具有基本文本输入和标识功能的界面。今天,我们将继续深入学习文本输入相关的组件,包括密码域(JPasswordField)、文本区(JTextArea)以及滚动窗格(JScrollPane)。这些组件在处理密码输......
  • docker 镜像上传下载,及构建java项目镜像心得
    docker在服务部署中是比较方便,并且在部署过程中出现问题的几率较低。本文对基础的docker项目部署做简单介绍1、安装docker和docker-compose,网上都有自行搜索2、拉取官方镜像①、拉官方镜像需要有镜像服务器,没有镜像服务器会报错,好用的镜像服务器都是收费的,不收费的大部分用不......
  • 01java反序列化基础
    java反射的相关操作一些重要的方法获取类的⽅法:forName实例化类对象的⽅法:newInstance获取函数的⽅法:getMethod执⾏函数的⽅法:invoke//eg.反射获取任意类的任意方法并执行importjava.lang.reflect.Method;publicclassReflectionExample{publics......