1.介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)【基础】

答:Collection FrameWork 如下:

Collection:

├List

│├LinkedList

│├ArrayList

│└Vector

│ └Stack

└Set

Map

├Hashtable

├HashMap

└WeakHashMap

Collection 是最基本的集合接口,一个Collection 代表一组Object,即Collection 的元素(Elements); Map 提供key 到value 的映射。

2.List,Set,Map 是否继承自Collection 接口?【基础】

答:List,Set 是;Map 不是。

3.你所知道的集合类都有哪些?主要方法?【基础】

答:最常用的集合类是List 和Map。List 的具体实现包括ArrayList 和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List 适用于按数值索引访问元素的情形。Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

4.说出ArrayList,Vector, LinkedList 的存储性能和特性?【基础】

答:ArrayList 和Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了synchronized 方法(线程安全),通常性能上较ArrayList 差,而LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

5.Collection 和Collections 的区别?【基础】

答:Collection 是java.util 下的接口,它是各种集合的父接口,继承于它的接口主要有Set 和List;Collections 是个java.util 下的类,是针对集合的帮助类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

6.HashMap 和Hashtable 的区别? 【基础】

答:二者都实现了Map 接口,是将惟一键映射到特定的值上;主要区别在于:

1)HashMap 没有排序,允许一个null 键和多个null 值,而Hashtable 不允许;

2)HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey,因为contains 方法容易让人引起误解;

3)Hashtable 继承自Dictionary 类,HashMap 是Java1.2 引进的Map 接口的实现;

4)Hashtable 的方法是Synchronize 的,而HashMap 不是,在多个线程访问Hashtable 时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。Hashtable 和HashMap 采用的hash/rehash 算法大致一样,所以性能不会有很大的差异。

7.Arraylist 与Vector 区别?【基础】

答:就ArrayList 与Vector 主要从二方面来说:

1)同步性:Vector 是线程安全的(同步),而ArrayList 是线程序不安全的;

2)数据增长:当需要增长时,Vector 默认增长一倍,而ArrayList 却是一半。

8.List、Map、Set 三个接口,存取元素时,各有什么特点?【基础】

答:List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value 值,value 可多值。

9.Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 【基础】

答:Set 里的元素是不能重复的,用equals ()方法来区分重复与否。覆盖equals()方法用来判断对象的内容是否相同,而”==”判断地址是否相等,用来决定引用值是否指向同一对象。

10.用程序给出随便大小的10 个数,序号为1-10,按从小到大顺序输出,并输出相应的序号。【基础】

public class RandomSort {public static void printRandomBySort() {Random random = new Random(); // 创建随机数生成器List list = new ArrayList();// 生成10 个随机数,并放在集合list 中for (int i = 0; i < 10; i++) {list.add(random.nextInt(1000));}Collections.sort(list); // 对集合中的元素进行排序Iterator it = list.iterator();int count = 0;while (it.hasNext()) { // 顺序输出排序后集合中的元素System.out.println(++count + ": " + it.next());}
}

java map 排序_java集合框架面试题大集合相关推荐

  1. java doubke类型转换为String_Java基础知识面试题大集合

    本文整理自作者:ThinkWon  链接: blog.csdn.net/ThinkWon/article/details/104390612 本文知识点目录 Java概述 何为编程 什么是Java j ...

  2. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  3. 10道集合框架面试题(含解析),来看看你会多少

    1.Arraylist 与 LinkedList 异同 (1)是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全: (2)底层数据结构: Arrayl ...

  4. java 面试 框架_这份java集合框架面试题,轻松搞定面试官!

    集合框架 1. ArrayList 和 Vector 的区别. 这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集 合,即存储在这两个集合中的元素的位 ...

  5. java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...

    一个多月前,作者和一些小伙伴决定做一系列的 Java 知识点常见重要问题的小册,方便用来夯实基础!小册的标准就一个,那就是:取精华,取重点.每一本小册,我们都会充分关注我们所总结的知识点是否达到这个标 ...

  6. java 性能 排序_Java常用排序算法及性能测试集合

    package algorithm.sort; import java.lang.reflect.Method; import java.util.Arrays; import java.util.D ...

  7. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  8. java对日期进行排序_Java对日期时间值的集合进行排序

    我正在使用notes.jar lotus notes api来提取电子邮件的日期和时间.当我将它们添加到集合中时,如果像这样添加它们: Vector times = doc.getItemValueD ...

  9. java map 教程_Java Map接口

    Java Map接口 在本教程中,我们将学习Java Map接口及其方法. Java collections框架的Map接口提供了Map数据结构的功能. 它实现了Collection接口. map的工 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 1. 一元线性回归
  2. Keras functional API快速入门
  3. 直接启动SDK Manager: $ADNROID_HOME/tools/android
  4. 完美解决Centos不能ping百度的问题
  5. STL泛型编程之map映照容器
  6. python中特殊变量-python list每三个分成一组python中星号变量的几种特殊用法
  7. 学习linux/unix编程方法的建议-转
  8. mysql优化的基本原则和方向
  9. macOS HBuilderX 使用安卓模拟器调试项目
  10. 不要去深圳小梅沙海洋世界
  11. onethink钩子
  12. (Python)从零开始,简单快速学机器仿人视觉Opencv---运用三:物体运动跟踪
  13. ios虚拟机运行速度_iOS 8的采用速度减慢至虚拟停止
  14. 【每日新闻】阿里云回应大规模故障:运维操作失误 将认真改进 | 分析师:Azure已取代Windows成为微软新的增长点...
  15. 【单片机毕业设计】【mcuclub-jj-013】基于单片机的衣柜的设计
  16. matlab获取晶粒边界,晶粒边界
  17. 库卡机器人编程权限_库卡机器人编程之BAS程序
  18. 拉卡拉的十四年和第三次成人礼
  19. 不要慌,我有亿点小建议,万字长文!
  20. 踏浪点神:5.20 恒指黄金原油早盘分析及最新资讯

热门文章

  1. 012_Java操作FastDFS
  2. Visual Studio 2017软件安装教程
  3. After Effects 2019 CC for mac下载安装激活步骤演示
  4. word2vec代码_Word2Vec-——gensim实战教程
  5. plsql oracle服务端,PLSQL Developer + Oracle客户端简易安装方法
  6. c语言中的关于数学问题的编程,C语言中具有代表性几种数学问题编程技巧探索.doc...
  7. linux mysql库看不见,linux下Mysql找不到mysqlclient库!谢谢大家
  8. ip映射后 前端无法调用接口_基于S7300400 CPU集成PN接口的Modbus TCPW
  9. 一周一论文(翻译 总结)— [SOCC 13] jVerbs Ultra-Low Latency for Data Center Applications 在JVM虚拟机上构建RDMA的verbs操作
  10. python类的成员函数_Python实现动态添加类的属性或成员函数的解决方法