java面试题:集合

这是在您的应用程序中选择Set , List或Map的正确实现的快速指南。

最好的通用或“主要”实现可能是ArrayList,LinkedHashMap和LinkedHashSet。 它们的整体性能更好,除非您需要其他实现提供的特殊功能,否则应使用它们。 该特殊功能通常是排序或排序。

在这里,“排序”是指迭代器返回的项目的顺序,“排序”是指根据Comparable或Comparator对项目进行排序。

接口 有重复吗? 实作 历史的
没有 哈希集 LinkedHashSet * 树集
清单 ArrayList * 链表 向量 , 堆栈
地图 没有重复的键 哈希图 LinkedHashMap * 树状图 哈希表 , 属性

非主要实现的主要特征:

  • HashMap的性能比LinkedHashMap略好
  • HashSet的性能比LinkedHashSet略好
  • TreeSet已排序和排序,但速度较慢
  • TreeMap已排序和排序,但速度较慢
  • LinkedList可以快速添加到列表的开头,并且可以通过迭代从内部快速删除

以上实现的迭代顺序:

  • HashSet – 未定义
  • HashMap – 未定义
  • LinkedHashSet –插入顺序
  • LinkedHashMap –键的插入顺序(默认情况下)或“访问顺序”
  • ArrayList –插入顺序
  • LinkedList –插入顺序
  • TreeSet –按照可比/比较器的升序
  • TreeMap –根据可比/比较器,键的升序

对于LinkedHashSet和LinkedHashMap,项目的重新插入不会影响插入顺序。

在地图或集合中使用时,这些项目不得更改状态(因此,建议这些项目是不可变的对象):

  • 地图键
  • 套装中的物品

排序要求:

  • 存储的项目实现可比性
  • 定义存储对象的比较器

要保留在ORDER BY子句中指定的ResultSet的顺序,请将记录插入到List或LinkedHashMap中。

参考:在“ 建筑师日记”博客中,从我们的JCG合作伙伴 Sanjeev Kumar 选择了正确的收藏 。

翻译自: https://www.javacodegeeks.com/2012/09/java-choosing-right-collection.html

java面试题:集合

java面试题:集合_Java:选择正确的集合相关推荐

  1. 改善C#程序的建议3:在C#中选择正确的集合进行编码

    原文:改善C#程序的建议3:在C#中选择正确的集合进行编码 要选择正确的集合,我们首先要了解一些数据结构的知识.所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合.结合下图,我们看一下对 ...

  2. java异常处理试题答案_Java 面试题和答案 - (下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  3. java面试题下载_java面试题大全 打包 下载

    java面试题大全 打包 下载 资料目录: 面试题 |____性能优化面试专题 |____程序性能优化 |____Mysql优化相关问题 |____Tomcat优化相关问题.docx |____JVM ...

  4. java 三大集合_java中的三大集合入门笔记(简单实用)

    为什么使用集合框架 如图: 集合的好处: 集合弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合适用于不同的场合. Java集合主要分为以下3种类型 Java集合框架提供 ...

  5. Java for函数用法_Java函数式编程(四)集合的使用

    第二章:集合的使用 我们经常会用到各种集合,数字的,字符串的还有对象的.它们无处不在,哪怕操作集合的代码要能稍微优化一点,都能让代码清晰很多.在这章中,我们探索下如何使用lambda表达式来操作集合. ...

  6. java面试题 英文_JAVA面试题和答案(英文版).pdf

    Java面试题和答案 (英文版) Q:What isthe difference betweenan Interface and anAbstract class? A:Anabstract clas ...

  7. java list怎么替换_Java如何对List集合的操作方法(一)

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...

  8. Java:选择正确的集合

    这是在应用程序中选择Set , List或Map的正确实现的快速指南. 最好的通用或"主要"实现可能是ArrayList,LinkedHashMap和LinkedHashSet. ...

  9. java的核心类库_Java核心类库,集合框架

    Java集合框架的由来: Java最初版本只为最常用的数据结构提供了很少的一组类:比如Vector.Stack.Hashtable.BitSet.Enumerrationr接品,其中Enumerrat ...

最新文章

  1. layui表格获取不到多层数据的解决方案
  2. Spark Streaming实现实时WordCount,DStream的使用,updateStateByKey(func)实现累计计算单词出现频率
  3. orbeon form 的配置介绍
  4. 求一个连通图的割点(去掉一个点后图不再连通)
  5. Mysql 替换字段的一部分内容
  6. LeetCode 856. 括号的分数
  7. PACKING【二维01背包】
  8. [UVALive 3661] Animal Run
  9. sony微型计算机,舍我其谁?只有SONY做得到!
  10. YUV序列下采样以及彩色4:2:0与灰度4:0:0转换---基于matlab实现
  11. Node文件服务器(文件上传)
  12. 码农如何写好一封邮件/1
  13. UVA11752 The Super Powers —— 数论、枚举技巧
  14. 组织和遍历TreeView里面的数据
  15. Java设计模式-简单工厂模式(Static Factory Method)
  16. WPF--->Stylet将TextBox修改为圆角
  17. 服务器内存是用接近完毕
  18. ios 8 地图定位
  19. 三角函数正交性理解与Matlab分析
  20. ffmpeg 中av_rescale_rnd 的含义

热门文章

  1. Java NIO系列教程(十) Java NIO DatagramChannel
  2. 任务调度(三)——Timer的替代品ScheduledExecutorService简介
  3. 05-传统开发模式DAO
  4. “老师,请您多关注一下我吧!!!”
  5. 使用java解析XML文件的步骤
  6. excel批量插入 配置yml
  7. 一次性加载树结构数据表 mapper加载
  8. Spring MVC开发环境搭建
  9. 按逆向思维定义软件测试,软件测试基础相关概念
  10. 在实际使用中 mysql所支持的触发器有_2016计算机二级MySQL冲刺题及答案