今天的编程涉及使用大型数据集,通常包括许多不同类型的数据。操作这些数据集可能是一项复杂且令人沮丧的任务。为了简化程序员的工作,Java在1998年引入了 Java Collections Framework 集合。
什么是Java集合?
纵观Java的一生,它经历了巨大的发展。一个早期的进步出现在1998年,当时Java引入了集合框架(JCF),简化了Java对象的使用。JCF为集合提供了标准化的接口和通用方法,减少了编程工作量,提高了Java程序的速度。
理解Java集合和Java集合框架之间的区别是至关重要的。Java集合只是表示一组Java对象的数据结构。开发人员可以像处理其他数据类型一样处理集合,执行常见的任务,如搜索或操作集合的内容。
在使用集合时,开发人员需要熟悉并理解一些与集合相关的特定术语:
l 可修改与不可修改:正如这些术语所暗示的,不同的集合可能支持也可能不支持修改操作。
l 可变与不可变:不可变集合在创建后不能修改。虽然在某些情况下,由于其他代码的访问,不可修改的集合仍然可能发生变化,但不可变集合会阻止这种变化。能够保证集合对象没有可见变化的集合是不可变的,而不可修改的集合是不允许诸如“添加”或“清除”等修改操作的集合。
l 固定大小与可变大小:这些术语仅指集合的大小,并不表示集合是可修改的还是可变的。
l 随机存取与顺序存取:如果集合允许对单个元素进行索引,则它是随机访问。在顺序访问集合中,必须遍历所有前面的元素才能到达给定的元素。顺序访问集合可能更容易扩展,但需要更多的时间来搜索。
初学编程的人可能会发现很难理解不可修改集合和不可修改集合之间的区别。不可修改的集合不一定是不可变的。事实上,不可修改的集合通常是可修改集合的包装,其他代码仍然可以访问和修改。其他代码实际上可能能够修改基础集合。使用集合需要一些时间,以便对不可修改和不可变的集合有一定的了解。
集合与Java集合框架有什么关系?
在引入JCF之前,开发人员可以使用几个特殊的类对对象进行分组,即数组、向量和哈希表类。不幸的是,这些类有很大的局限性。除了缺乏一个通用的接口,它们很难扩展。
JCF为使用集合提供了一个总体的公共架构。集合界面包含几个不同的组件,包括:
l 通用接口:主要集合类型的表示,包括集合、列表和映射
l 实现:集合接口的具体实现,从通用到专用再到抽象; 此外,还有一些与旧的数组、向量和哈希表类相关的遗留实现
l 算法:操作集合的静态方法
l 基础设施:对各种集合接口的底层支持
与以前的对象分组方法相比,JCF为开发者提供了许多好处。值得注意的是,JCF减少了开发人员编写自己的数据结构的需求,从而提高了Java编程的效率。
但是JCF也从根本上改变了开发人员使用API的方式。有了一种新的通用语言来处理不同的API,JCF使得开发人员学习、设计和实现API变得更加简单。此外,API的互操作性大大提高了。一个例子是Eclipse Collections,一个开源的Java集合库完全兼容不同的Java集合类型。
额外的开发效率提高了,因为JCF提供了更容易重用代码的结构。结果,开发时间减少了,程序质量提高了。
Java 集合的性能
随着集合大小的增长,它们可能会出现明显的性能问题。事实证明,正确选择集合类型和相关的集合设计也会显着影响性能。
可供开发人员和应用程序使用的数据量不断增加,这促使 Java 引入了新的方法来处理集合以提高整体性能。在 2014 年发布的 Java 8 中,Java 引入了 Streams——新功能,其目的是简化和提高批量对象处理的速度。自推出以来,Streams 已经进行了许多改进。
应用并行处理来提高性能
在 Java 中处理大型集合可能很麻烦。虽然 Streams 简化了对大型集合的处理和对大型集合的编码操作,但它并不总是能保证提高性能。
因此,为了提供最佳的客户体验并维护开发人员提供优质产品的声誉,开发人员必须考虑如何优化大型数据收集的处理工作。虽然并行处理不能保证提高速度,但它是一个很有前途的起点。
并行处理,即将处理任务分成更小的块并同时运行它们,提供了一种在处理大型集合时减少处理开销的方法。但即使是并行流处理也会导致性能下降,即使它更易于编码。本质上,与管理多个线程相关的开销可以抵消并行运行线程的好处。想掌握 Java 技术的同学不妨报个Java培训班,可以节省学习时间,提高学习效率,在短时间内学有所成,还能找到一份不错的工作。
Java 有一个原生的集合并行处理函数:Collection.parallelstream。默认顺序流处理和并行处理之间的一个显着区别是执行和输出的顺序(在顺序处理时始终相同)在使用并行处理时可能因执行而异。因此,并行处理在处理顺序不影响最终输出的情况下特别有效。
结论
在一个大数据的世界中,找到改进大数据集合处理的方法是创建高性能网页和应用程序的必要条件。Java提供了内置的集合处理特性,帮助开发人员改进数据处理,包括集合框架和本机并行处理功能。开发人员需要熟悉如何使用这些特性,并了解何时原生特性是可接受的,何时应该转移到并行处理。想学习更多 Java 知识和技能,建议参加java培训,课程实时更新,紧跟市场和企业,让你学到最新的java技能,提高市场竞争力。
发表评论 取消回复