首页 > 编程语言 >Java 集合框架体系简介

Java 集合框架体系简介

时间:2023-06-09 17:23:59浏览次数:37  
标签:Java 简介 元素 Person people1 数组 集合 new

为什么要使用集合

存储多个数据可以使用数组,但由于数组在内存中是连续存储的,所以会有一些限制。比如数组在创建时就要指定长度,即可以容纳的元素个数,且指定后无法更改;数组在创建时需要指定元素的类型,并且所有元素都必须是该类型或其子类;添加或删除数组中的元素需要创建一个新数组再进行元素复制,比较麻烦。下面是 Person 数组扩容的示意代码。

// 给 people1 数组末尾添加一个元素
public class PersonArray {
    public static void main(String[] args) {
        Person[] people1 = new Person[1];
        people1[0] = new Person();

        // 创建新数组
        Person[] people2 = new Person[people1.length + 1];
        // 复制 people1 数组的元素到 people2
        for (int i = 0; i < people1.length; i++) {
            people2[i] = people1[i];
        }
        // 添加新元素
        people2[people2.length - 1] = new Person();
    }
}

数组可以通过索引快速访问和操作元素,在许多场景下仍然是非常有用的,但如果需要动态调整大小或保存不同类型的元素,则可以考虑使用集合类来代替数组。集合类还提供了一系列增加、删除、修改和查找元素的方法。集合框架中还提供了多种优化和封装好的实现类,通过使用合适的集合类可以更高效地组织和操作数据。

集合框架体系

Java 的集合类很多,主要有CollectionMap两个接口,层次关系如下图。

image

image

Collection接口有ListSet这两个重要的子接口,它们的实现子类都是单列集合。其中List接口表示有序的、可以包含重复元素的集合,常见的实现类有ArrayListLinkedListVectorSet接口表示无序的且不包含重复元素的集合,常见的实现类有HashSetTreeSetLinkedHashSet

Map接口实现子类是双列集合,表示一组键值对的映射,其中每个键都是唯一的。常见的实现类有HashMapHashtableProperties

public class AddElements() {
  public static void main(String[] args) {
    ArrayList<Object> list = new ArrayList<>();
    list.add("黄蓉");
    list.add("郭靖");

    HashMap hashMap = new HashMap();
    hashMap.put("001", "黄蓉");
    hashMap.put("002", "郭靖");
  }
}

标签:Java,简介,元素,Person,people1,数组,集合,new
From: https://www.cnblogs.com/echo97/p/17469763.html

相关文章

  • java的接口和抽象类简单理解
    接口是定义了系统各模块应该遵守的标准。实现者对外提供哪些服务,调用者可以调用哪些服务以及如何调用服务。抽象类作为系统中各个子类的共同父类,所表现的是一种模板设计,只实现了最基础的共通功能,相当于一个中间产品,各个子类具体实现抽象方法。抽象类可以没有抽象方法,......
  • java8如何校验ssh-keygen生成的公私钥
    如果你的公私钥文件不是PEM格式的,而是其他格式,如OpenSSH格式(通常以`id_rsa`和`id_rsa.pub`命名),你可以使用Java的`JSch`库来验证它们的有效性。下面是一个示例代码,演示如何使用`JSch`库验证OpenSSH格式的公私钥对:首先,你需要在项目中引入JSch库的依赖。你可以使用Maven或手动下载并......
  • java不打印异常堆栈
    背景:生产环境抛异常,但却没有将堆栈信息输出到日志,只有简单的java.lang.NullPointerException错误信息。原因分析JVM在默认启动的时候会加上OmitStackTraceInFastThrow参数,含义是当大量抛出同样的异常的后,后面的异常输出将不打印堆栈。原因是打印堆栈的时候底层会调用到Throw......
  • 使用JAVA开发微信公众平台(一)——环境搭建与开发接入
    一、初始微信公众平台微信公众平台,即我们平时所说的“公众号”,曾用名“官方平台”、“媒体平台”,但最终命名为“公众平台”。从微信的命名我可以发现,公众平台不只是官方、媒体使用的平台,而是对所有公众都开放的统一平台。喜欢本文,请点击下方喜欢按钮呗!❤️微信公众平台地址:http......
  • Java面试题精华集-Java 工程师进阶知识完全扫盲
    在GitHub/Gitee编辑消息队列面试场景面试官:你好。候选人:你好。(面试官在你的简历上面看到了,呦,有个亮点,你在项目里用过MQ,比如说你用过ActiveMQ)面试官:你在系统里用过消息队列吗?(面试官在随和的语气中展开了面试)候选人:用过的(此时感觉没啥)面试官:那你说一下你们在项目里是......
  • 全网八股文面试高频题目--JAVA基础
    八股文--JAVA基础目录八股文--JAVA基础1.JDK、JRE、JVM有什么区别1.1Java为什么被称为平台无关性语言?2.常用数字类型的区别3.Float在JVM的表达方式及使用陷阱4.面向对象三个特性是什么4.1重载和重写的区别?4.2Java中是否可以重写一个private或者static方法?4.3构造方法有哪些......
  • SQLLDR简介 和 Oracle插入大量数据
    SQLLDR简介一、简介SQLLOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。SQLLOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。二、参数2.1语法用法:SQLLDRkeyword=value[,keyword=value,...]2.2参数......
  • Java并发编程 interrupt()方法
    interrupt()用法打断正常运行的线程interrrupt()方法可以用来打断正在运行的线程,也可以打断sleep()、wait()、join()情况下的线程,但是这些情况下被打断线程的打断标记不同。importlombok.extern.slf4j.Slf4j;importjava.util.concurrent.TimeUnit;@Slf4jpublicclassIn......
  • AMEYA360:松下小型功率继电器HE-R简介
    继电器是具有隔离功能的自动开关元件,广泛应用于自动控制、机电一体化、电力电子设备。松下全新上市的小型功率继电器HE-R具有小尺寸、高容量、低功耗等优点,适用于充电桩、工业用途!  一、产品特点  二、产品用途  三、详细特点  四、产品种类  五、产品额定文......
  • JavaScript中的模块化编程
    JavaScript中的模块化编程模块化编程是一种将程序拆分为独立模块的开发方法,每个模块具有明确定义的功能和接口。JavaScript中的模块化编程能够提高代码的可维护性、可重用性和可测试性。本文将详细介绍JavaScript中的模块化概念、几种常见的模块化方案,并提供更多的代码示例。1.......