Java 集合框架体系简介

这篇具有很好参考价值的文章主要介绍了Java 集合框架体系简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么要使用集合

存储多个数据可以使用数组,但由于数组在内存中是连续存储的,所以会有一些限制。比如数组在创建时就要指定长度,即可以容纳的元素个数,且指定后无法更改;数组在创建时需要指定元素的类型,并且所有元素都必须是该类型或其子类;添加或删除数组中的元素需要创建一个新数组再进行元素复制,比较麻烦。下面是 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两个接口,层次关系如下图。

Java 集合框架体系简介

Java 集合框架体系简介

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

Map接口实现子类是双列集合,表示一组键值对的映射,其中每个键都是唯一的。常见的实现类有HashMapHashtableProperties文章来源地址https://www.toymoban.com/news/detail-477097.html

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 集合框架体系简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS中, Set为什么是带键的集合?

    为了降低并发时的API请求量, 这两天写了个LRU Cache. 其中用到了Set做AllowList, 来判断API是否应该被缓存. 在MDN查API时, 发现Set被归类在Keyed Collection中. 一直以来, 下意识觉得Set只是value唯一的Array. 应该属于Indexed Collection. 感觉有些奇怪, 所以就查了下Set的实现机制 一开始, 先去MD

    2024年02月08日
    浏览(26)
  • 【JAVA】为什么要使用封装以及如何封装

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 Java的封装指的是在一个类中将数据和方法进行封装,使其可以保护起来,只能在该类内部访问,而不允许外部直接访问和修改。这是Java面向对象编程的三个基本特性之一,另外两个是继承和多态。在此之前我们已经学

    2024年02月08日
    浏览(38)
  • 什么是框架?为什么要学框架?

    框架是整个或部分应用的可重用设计,是可定制化的应用骨架。它可以帮开发人员简化开发过程,提高开发效率。 项目里有一部分代码:和业务无关,而又不得不写的代码==框架 项目里剩下的部分代码:实现业务功能需要的逻辑代码 简而言之,框架是一个应用系统的半成品

    2024年02月16日
    浏览(27)
  • Java开发手册中为什么禁止使用BigDecimal的equals方法做等值比较已经为什么禁止使用double直接构造BigDecimal

    阿里Java开发手册嵩山版中明确指出: 1、BigDecimal的等值比较应使用compareTo()方法,而不是equals()方法 equals()方法会比较值和精度(1.0与1.00返回结果为false),而compareTo()则会忽略精度 2、禁止使用构造方法BigDecimal(double)的方式把double值转换为BigDecimal对象 BigDecimal(double)存在精度损

    2024年02月07日
    浏览(37)
  • Java面试题:为什么HashMap不建议使用对象作为Key?

    HashMap 是一种基于哈希表的动态数据结构,它允许使用任意不可变对象作为键(key)来存储和检索数据。然而,在某些情况下,使用对象作为 HashMap 的键可能会遇到一些问题。   首先,我们需要明确对象作为 HashMap 的键需要满足一些条件: 不可变性:对象的属性不能被修改,

    2024年04月22日
    浏览(32)
  • C#: Json序列化和反序列化,集合为什么多出来一些元素?

    如下面的例子,很容易看出问题: 如果类本身的无参构造函数, 就添加了一些元素,序列化,再反序列化,会导致元素增加。 如果要避免,必须添加: new JsonSerializerSettings() { ObjectCreationHandling = ObjectCreationHandling.Replace }

    2024年02月10日
    浏览(40)
  • 什么是 Java 中的数据库连接池?为什么使用连接池来管理数据库连接?

    数据库连接池(database connection pool)是在 Java 中用于管理数据库连接的一种技术。它的主要目的是提高数据库连接的重用性和性能。在传统的数据库连接方式中,每次与数据库建立连接时都需要进行一系列的网络通信和身份验证操作,这样的开销较大并且会影响应用程序的性

    2024年02月06日
    浏览(47)
  • 为什么选择 Next.js 框架?

    Next.js 框架作为一种强大而受欢迎的工具,为开发人员提供了许多优势和便利。本文将探讨 Next.js 框架的优点,并解释为什么选择 Next.js 是一个明智的决策。 文档:https://nextjs.org/docs Next.js 框架提供了先进的服务端渲染(SSR)和静态生成(SSG)能力,使得我们能够在服务器上生

    2024年02月12日
    浏览(30)
  • 苹果手机iphone研发、设计、生产、供应链体系,附加值占比,以及中国为什么没有产出这样的跨国企业?

      目录 苹果手机iphone研发、设计、生产、供应链体系,附加值占比 中国为什么没有产出这样的跨国企业?

    2024年02月08日
    浏览(38)
  • 在Java中使用FileReader.read()进行读取文件时,为什么乱码?两个方法解决

     以上代码是有可能出现代码输出混乱的情况的,输出效果如下: 可能会出现乱码的问题: 原因可能是文件编码与程序读取时使用的编码不一致。在创建 FileReader 对象时,没有指定文件的编码格式,因此默认使用的是系统默认的编码格式。如果文件中包含非系统默认编码格式

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包