Java集合框架面试题目
1.为什么Map接口不继承Collection 接口?
- Set是无序集合,并且不允许重复的元素
- List是有序的集合,并且允许重复的元素
- 而Map是键值对
- 它被视为是键的set和值的set的组合
- Map被设计为键值对的集合,所以不需要继承Collection 接口
2.HashMap和Hashtable之间的区别?
- 同步或线程安全
- Null键和Null值
- 迭代值
- 默认容量大小
3.comparable 和 comparator的不同之处?
- comparable接口实际上是出自java.lang包
- 它有一个 compareTo(Object obj)方法来将objects排序
- comparator接口实际上是出自 java.util 包
- 它有一个compare(Object obj1, Object obj2)方法来将objects排序
4.如何对Object的list排序?
- 对objects数组进行排序,我们可以用Arrays.sort()方法
- 如果要对objects的集合进行排序,需要使用Collections.sort()方法
5. fail-fast 与 fail-safe 之间的区别?
- Fail fast快速地报告任何的failure。无论何时任何一个问题都会引发 fail fast系统fails
- 在Java Fail fast 迭代器中,迭代objects集合有时会出现并发修改异常,出现这种情况有2个原因
- 如果一个线程正在迭代一个集合,而另一个线程同时试图修改这个集合
- 在调用remove()方法后,如何我们还试图去修改集合object
6. Iterator、ListIterator 和 Enumeration的区别?
- Enumeration接口在Java1.2版本开始有,所以Enumeration是合法规范的接口
- Enumeration使用elements()方法
- Iterator对所有Java集合类都有实现
- Iterator使用iterator方法
- Iterator只能往一个方向前进
- ListIterator仅仅对List类型的类实现了
- ListIterator使用listIterator()方法
7.Java 中 Set 与 List 有什么不同?
- Set是一个不允许重复元素存在的集合
- Set没有索引
- Set仅仅允许一个null值
- Set有类:HashSet、LinkedHashMap、TreeSet
- List有索引
- List允许N个null值
- List可以按插入顺序显示
- List有类:Vector、ArrayList、LinkedList
8. arraylist 与 vector 的区别?
- Vector 在Java的第一个版本就引入了,也就是说vector是一个合法规范的类
- ArrayList在Java1.2版本引入的,是Java 集合框架的组成部分
- Vector是同步的
- ArrayList是不同步的
9.什么类实现了List接口?
- ArrayList
- LinkedList
- Vector
10.什么类实现了Set接口?
- HashSet
- LinkedHashSet
- TreeSet
11.如何保证一个集合线程安全?
- Vector, Hashtable, Properties 和 Stack 都是同步的类,所以它们都线程安全的,可以被使用在多线程环境中
- 使用Collections.synchronizedList(list)) 方法,可以保证list类是线程安全的
- 使用java.util.Collections.synchronizedSet()方法可以保证set类是线程安全的
12.是否可以往 TreeSet 或者 HashSet 中添加 null 元素?
- 可以往 hashset 中添加一个 null
- TreeSet 也允许一个 null值
13.解释下Collection的接口继承关系?

14.Iterator符合哪个设计模式?
- Iterator 设计模式
15.HashSet 实现了哪个数据结构?
- HashSet 内部实现了hashmap
16.为什么 Collection 不能继承 Cloneable 和 Serializable?
- List和Set唯一继承 Collection 接口
- SortedMap 继承了 Map 接口
17.hashCode() 和 equals() 方法的重要性?如何在Java中使用它们?
- hashCode() 和 equals() 方法定义在”object”类中
- 如果equals() 方法在比较2个对象时返回true,那么hashCode()的返回值必须得一样
18.array 和 arraylist 的区别?
- Array类似object集合类型,大小固定
- Arraylist是同质和异质元素的集合
19.什么是 Properties 类?
- Properties 是Hashtable的子类。它被用于维护值的list,其中它们的键、值都是String类型
20.如何将一个字符串转换为arraylist?
- 使用 arrayList.toArray() 方法
Java集合框架面试题目的更多相关文章
- 【转】Java集合框架面试问题集锦
Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题.很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性.下面是面试Java核心技术的一些很实用的问题. Q:最常见的 ...
- Java集合框架 面试问题整理
简介 java集合类是java.util 包中的重要内容.java集合框架包含了大量集合接口以及这些接口的实现类和操作他们的算法. java集合框架图 主要提供的数据结构 List 又称有序的Coll ...
- java集合框架面试要点整理
- Java集合框架总结—超详细-适合面试
Java集合框架总结—超详细-适合面试 一.精简: A.概念汇总 1.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口, ...
- (转)Java集合框架:HashMap
来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- 浅谈JAVA集合框架
浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...
- Java集合框架面试题
www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ...
- Java集合框架:HashMap
转载: Java集合框架:HashMap Java集合框架概述 Java集合框架无论是在工作.学习.面试中都会经常涉及到,相信各位也并不陌生,其强大也不用多说,博主最近翻阅java集合框架的源码以 ...
随机推荐
- spring+redis的集成,使用spring-data-redis来集成
1.参考:https://www.cnblogs.com/qlqwjy/p/8562703.html 2.首先创建一个maven项目.然后加入依赖的jar包就行了.我加入的jar包很多,反正加入了也没 ...
- [转] vue自定义组件(通过Vue.use()来使用)即install的使用
在vue项目中,我们可以自定义组件,像element-ui一样使用Vue.use()方法来使用,具体实现方法: 1.首先新建一个Cmponent.vue文件 // Cmponent.vue<te ...
- Angular路由——辅助路由
一.辅助路由语法 同时控制多个插座内容. 第一步: 模版上除了主插座,还需要声明一个带name属性的插座 第二步: 路由配置中配置name为aux的插座上可以显示哪些组件,比如显示xxx和yyy组件. ...
- Eigen::Matrix与array数据转换
1. 数组转化为Eigen::Matrix ]; cout << "colMajor matrix = \n" << Map<Matrix3i> ...
- matplotlib figure图像-【老鱼学matplotlib】
如果我们想要显示多个图像,有点类似多窗口显示图像这个概念,则就会用到plt.figure() 直接上例子: import numpy as np import pandas as pd import ...
- Tomcat 本地运行正常,服务器部署后乱码问题
Tomcat 在本地运行项目没啥问题,可是部署到服务器后就会发现有乱码的问题,这问题还是一半一半的,有些有,有些没有,这不是接收数据的时候会出现的乱码,是后台管理的页面中文乱码,我也是醉了, 把解决方 ...
- 潭州课堂25班:Ph201805201 tornado 项目 第六课 用户和图片分享的集成(课堂笔记)
tornado 相关说明 改善图片上传功能 ,生成唯一的 ID ,与路径拼接,生成 URL, 这里引用 uuid 的 python 库 在 photo.py 中创建个类,用来 辅助用户上传的图片,生 ...
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习3
#include <iostream> using namespace std; void showmenu(void) { cout<<"Please enter ...
- Ubuntu 配置安装PCL
Ubuntu 配置安装PCL 之前一直在Mac下开发,现在入手Ubuntu,也借此学习一下Linux下的源码编译安装过程. PCL简介 PCL(Point Cloud Library)是在吸收了前人点 ...
- centos7.4安装redis
参考连接 https://blog.csdn.net/qq_19399235/article/details/78313633/