首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

选择Java Collection实现的经验法则?

在选择Java Collection实现时,需要考虑以下几个方面:

  1. 性能需求:不同的Collection实现具有不同的性能特点。例如,ArrayList和LinkedList在插入和删除操作上有很大的差异,而HashMap和TreeMap在查找和插入操作上有很大的差异。因此,在选择Collection实现时,需要根据您的性能需求进行选择。
  2. 线程安全:如果您的应用程序需要在多线程环境中运行,那么您需要选择线程安全的Collection实现。例如,Vector和Collections.synchronizedList是线程安全的实现,而ArrayList和LinkedList不是线程安全的。
  3. 内存需求:不同的Collection实现具有不同的内存需求。例如,ArrayList和LinkedList在内存使用上有很大的差异,而HashMap和TreeMap在内存使用上也有很大的差异。因此,在选择Collection实现时,需要根据您的内存需求进行选择。
  4. 数据类型:不同的Collection实现支持不同的数据类型。例如,ArrayList和LinkedList支持任何数据类型,而HashSet和TreeSet只支持唯一的数据类型。因此,在选择Collection实现时,需要根据您的数据类型进行选择。

综上所述,选择Java Collection实现需要考虑多个因素,需要根据您的具体需求进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

学习Java Collection FrameworkIterator实现

继续研读JDK源码,在比较HashMap和ConcurrentHashMap不同之处发现了一个细节——关于Iterator实现不同,其实HashMap和ConcurrentHashMap还有更多不同地方...,这也是面试经常问到问题,有一篇文章我觉得讲很好了,Java进阶(六)从ConcurrentHashMap演进看Java多线程核心技术。...Iterator是一种设计模式,在Java Collection Framework中经常作为容器视图(view),大多数时候只支持删除、不支持增加,提供统一接口方法等特点。...在Java Collection FrameworkIterator实现中大多数是fast-fail方式,而支持并发容器数据结构则没有这个限制。...Iterator和Java利用内部类实现有相似的地方。

45250

JavaCollection集合

集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map本文主要讲Collection集合,后续再补充Map集合。...Collection:单列集合类根接口,用于存储一系列符合某种规则元素,它有两个重要子接口,分别是java.util.List和java.util.Set。...List接口主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口主要实现类有java.util.HashSet和java.util.TreeSet...其中,最上层灰色框里填写都是接口类型,第二层里填写都是具体实现类。 集合本身是一个工具,它存放在java.util包中。在Collection接口定义着单列集合框架中最最共性内容。...方法演示: import java.util.ArrayList; import java.util.Collection; public class Demo1Collection { public

68440

探究JavaCollection接口,理解集合框架实现原理!

Collection接口实现类包括List、Set和Queue等。...在Java中,集合是一种动态对象,它可以根据需要自动增加或减少容量。集合框架提供了一组实现类,这些实现类提供了不同数据结构和操作方式,可以满足不同需求。  ...  根据如上案例代码本地执行后结果如下:代码解析如上测试用例给大家演示了如何使用Java集合框架中Collection接口基本用法,具体如下:创建了一个Collection接口实现类ArrayList...在使用Collection接口时,需要注意其泛型类型,以便正确地使用集合中元素。此外,需要了解Collection接口提供各种方法,并根据需求进行选择和使用。...Collection接口实现类有许多,每个实现类都提供了不同数据结构和操作方式,可以满足不同需求。

16622

不可不知10条UI设计经验法则

静电说:近期我们将连续翻译海外作者Danny Sapio设计经验法则文章。...因此,这些经验法则仅仅作为你参考即可,而非公式。 01 设计基于密度而非像素 请记住,像素密度定义。它是显示设备每物理英寸像素数,像素密度简写是PPI(Pixels per inch)。...通过使用多种浅色,可以为不同元素分配不同重要性级别。 ? 这个经验法则就是,如果一个元素比另一个元素重要,则它们应该有更“重”视觉重量。...另外,在选择字体时,请找到具有不同字体重量字体,比如一种字体包含,极细,常规,中,粗体,超粗体,压缩,或者斜体等样式。这种字体会为你提供更多选择,也无需再去添加其它样式字体。...关于动画和微交互一条经验法则是,如果体验增加了不必要时间,那么它并不能改善体验。有目的性使用动画可以改善体验,请记住,动画一定是有目的

51410

java9-Collection集合类增强

我计划在后续一段时间内,写一系列关于java 9文章,虽然java 9 不像Java 8或者Java 11那样核心java版本,但是还是有很多特性值得关注。...期待您能关注我,我将把java 9 写成一系列文章,大概十篇左右,本文是第5篇。...java9系列文章访问地址 本文带大家快速了解一下在Java 9 种集合类Colleaction子类都发生了哪些比较有用变化与增强。...一、提供Of()方法创建集合 1.1.构建Set集合对象 Java 9 提供了一系列工厂方法of()来更加简便构建Set集合对象。...使用of()方法构建java.util.Set我们就不用一个元素一个元素add()数据了。但需要注意是:这种方法构建Set集合类对象一旦构建就不能更改,不能再新增集合元素。

38520

java集合【4】——— Collections和Collection区别

pexels-thought-catalog-2228579 刚开始学java时候,分不清Collection和Collections,其实这两个东西是完全不一样东西。...Collection是一个接口,是java集合中顶级接口之一,衍生出了java集合庞大体系。...下面的图可以说明: 继承Collection子类关系如下: 既然Collection是接口,那么它本身就是不可以实例化,它子类或者实现类是可以。...java集合【2】——— Collection接口详解 而Collections则是工具类,是java集合中常用方法一个小小汇总,覆盖了排序,搜索,线程安全之类一些算法,里面基本都是静态方法,可以直接用类名调用...提供对集合对象进行基本操作通用接口方法。Collection接口在Java 类库中有很多具体实现Collection接口意义是为各种具体集合提供了最大化统一操作方式,提供了一种规范。

35910

java集合【6.1】-- Collection和Collections区别?

刚开始学java时候,分不清Collection和Collections,其实这两个东西是完全不一样东西。...Collection是一个接口,是java集合中顶级接口之一,衍生出了java集合庞大体系。...下面的图可以说明: 继承Collection子类关系如下: [20200229141352.png] 既然Collection是接口,那么它本身就是不可以实例化,它子类或者实现类是可以。...【java集合梳理】— Collection接口详解 而Collections则是工具类,是java集合中常用方法一个小小汇总,覆盖了排序,搜索,线程安全之类一些算法,里面基本都是静态方法,可以直接用类名调用...具体源码解析看这个: 【java集合梳理】— Collections接口源码解析 两个东西相同之处,大概是都是和集合相关,而Collections感觉名字起得不太好,应该改成CollectionUtils

33400

JAVACollection(一):关于RandomAccess讨论

return mid; // key found } return -(low + 1); // key not found } 通过查看源代码发现,未实现...RandomAccess接口List集合一般采用Iterator循环遍历,实现接口则采用for循环遍历。...详细编码来自:https://blog.csdn.net/weixin_39148512/article/details/79234817 所以我们在做项目时,应该考虑到List集合不同子类采用不同遍历方式...然而有人发出疑问了,那怎么判断出接收List子类是ArrayList还是LinkedList呢? 这时就需要用instanceof来判断List集合子类是否实现RandomAccess接口!...总结:RandomAccess虽然是个空接口,但通过这个接口可以判断时ArrayList还是LinkedList,从而选择更好循环遍历方法,提高性能。

73700

深入理解JavaGarbage Collection

在VM中,GC实现过程恰恰相反,GC目的是为了追踪所有正在使用对象,并且将剩余对象标记为垃圾,随后标记为垃圾对象会被清除,回收这些垃圾对象占据内存,从而实现内存自动管理。...JVM中采用了Card Marking(卡片标记)方式解决了这个问题,这里不对卡片标记细节实现进行展开。...关于Eden就介绍这么多,其中TLAB和Card Marking是JVM中相对底层实现,大概知道即可。...Tenured 老年代(Old Generation)更多时候被称为Tenured,它内存空间实现一般会更加复杂。...参考资料: 《深入理解Java虚拟机-2nd》 《The Garbage Collection Handbook》 知乎-RednaxelaFX部分回答 Java Garbage Collection

67210

十一条程序员编码黄金法则,实践经验总结

这是一篇值得收藏起来,隔三差五就拿来重读文章!因为作者向你保证,他“遇到所有糟糕代码,都是因为没采纳这些实践经验。而任何一段优秀代码,都采纳了至少部分实践经验。” 还等什么?...赶快看看这些经验就是什么吧? 我已经写了20年代码了,在此期间曾与17个团队共事过,使用不同语言做过数百个项目。...选择一种格式,应用到代码中,然后将这个过程自动化。然后就可以重新专注于写代码本身了。 死代码 所有注释掉代码块、未使用变量和无法到达代码都是垃圾。他们就像在对读者说,“我不关心这段代码”。...合理返回 我们总是选择返回最奇怪值,特别是对于边界条件情况。像-1、687或null。然后就得写很多代码来处理这些值。实际上,null创造者称它为“10亿美元错误”。...对称性 最后一条实践经验能给所有代码可读性带来诗一般润色,那就是对称性。这条来自Kent Beck实现模式》一书,书中说到: 代码中对称性是说,同样思想在任何地方都使用同样实现

39510

MongoDB数据结构设计中6条重要经验法则

不同情况下你建模也将不同。..._id一定是有索引,所以这也会很高效。 这中引用方式是对内嵌优缺点补充。每个零件是个单独文档,可以很容易独立去搜索和更新他们。...使用这种建模方式需要考虑一个问题是需要一条单独语句去获取零件具体内容 这种建模方式中零件部分可以被多个产品使用,所以在多对多时不需要一张单独连接表。...一对很多 我们用一个收集不同机器日志例子来讨论一对很多问题。由于每个mongodb文档有16M大小限制,所以即使你是存储ObjectID也是不够。...一对多且多一段内容因为各种理由需要单独存在情况下可以使用通过数组方式引用多一方方案。 一对非常多情况下,请将一那端引用签入进多端方案。

2K70

机器学习四十三条经验法则——来自谷歌ML工程最佳实践

本文主要围绕是谷歌公司(Google)在机器学习方面的经验,旨在为那些具备一定机器学习基础读者提供最佳经验法则。...文章向读者展现机器学习经验法则方式,与谷歌 C++ 风格指南以及其它流行编程实践指南相类似。...法则3:在机器学习和启发式方法中优先选择机器学习。 机器学习阶段1:第一条工作流 认真对待第一条工作流基础架构建设。...在这里,我对目标和度量作一下区分:度量是系统报告给出数字,不一定很重要。 法则12:选择直接优化目标时不要想太多。 法则13:选择一个简单、可观测并且可归类评估指标作为你第一个目标。...当你有了一个端对端系统,并且该系统单元和测试都仪表化之后,第二阶段便开始了。 在第二阶段可以轻松实现许多成果。很多明显特征都能被纳入系统。

60460
领券