Java集合类笔试题

介绍Collection框架的结构
Collection接口是单值存放的最大父接口,可以向其中保存多个单值的数据(所谓单值就是指集合中的每个元素都是一个对象)。其子接口主要有:List、Set、Queue和SortedSet。
List:是Collection接口的子接口,也是最常用的接口。此接口对Collection接口进行了大量的扩充,里面的元素是允许重复的。
set:不能存放重复的元素,所有重复的元素靠hashCode()和equals()两个方法区分。
queue:队列接口。
SortedSet:可以对集合中的数据进行排序。
Collection框架中实现比较要实现什么接口?
comparable/comparator
ArrayList和Vector的区别
这两个类都实现了List接口(List接口继承于Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是与Set类的集合的最大不同之处,Set类集不可以按索引号检索其中的元素,也不允许有重复的元素,,这些是废话。。。
ArrayList与Vector的区别:
| 比较点 | ArrayList | Vector |
| 推出时间 | JDK 1.2之后推出的,属于新的操作类 | JDK 1.0时推出,属于旧的操作类 |
| 性能 | 采用异步处理方式,性能更高 | 采用同步处理方式,性能较低 |
| 线程安全 | 属于非线程安全的操作类 | 属于线程安全的操作类 |
| 输出 | 只能使用Iterator、foreach输出 | 可以使用Iterator、foreach、Enumeration输出 |
Vector是线程安全的,也就是说它的方法之间线程同步的,而ArrayList是线程不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。
备注:对于Vector&ArrayList、Hashtable&HashMap,要记住线程安全的问题,记住Vector与Hashtable是旧的,是java一诞生就提供了的,它们是线程安全的。ArrayList与HashMap是新的操作类,它们是线程不安全的。
HashMap与Hashtable的区别:
| 比较点 | HashMap | Hashtable |
| 推出时间 | JDK 1.2之后推出,属于新的操作类 | JDK 1.0时推出,属于旧的操作类 |
| 性能 | 采用异步处理方式,性能更高 | 采用同步处理方法,性能较低 |
| 线程安全 | 属于非线程安全的操作类 | 属于线程安全的操作类 |
| 空键 | 允许将key设置为null | 不允许将key设置为null,否则会出现NullPointerException异常 |
List和Map的区别?
一个是存储单列数据的集合,另一个是存储键和值这样的双列数据的集合,List中存储的数据是有顺序的,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,但它的值是可以重复的。
Collection和Collections的区别
Collection是单值存放的最大父接口,是集合类的上级接口,继承自它的接口有List、Set、Queue和SortedSet。
Collections是针对集合类的一个帮助类,它提供了一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
List和Set的区别:
两者都继承自Collection接口
List集合内的的元素是有序的,元素可以重复
Set集合内的元素是无序的,但元素不可以重复。
ArrayList和LinkedList的区别
1.ArrayList是实现了动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,很明显ArrayList的性能要优于LinkedList。
3.对于增加和删除操作add和remove,LinkedList占优势。
当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList性能比较好;当操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了。
Java集合类笔试题的更多相关文章
- Java 面试/笔试题神整理 [Java web and android]
Java 面试/笔试题神整理 一.Java web 相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并 ...
- 非常全面的java基础笔试题
下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...
- 一招破解 Java 集合类面试题
今日招式:Java集合类面试题 Java集合类绝对是我们的老朋友了,Java技术江湖里,谁人不知,谁人不晓,它的使用率非常高,使用难度却也不大,这也导致了很多人对它不屑一顾,殊不知其中却暗藏玄机,今天 ...
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- Android开发面试经——3.常见Java基础笔试题
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- Java基础&笔试题
这些题目是近期我参加过的笔试题和一些我在网上选的部分题,在这里做笔记,认真去学习,更好的应对后面的招聘.有错误欢迎指出. 一.Java基础部分 1.指针在任何情况下都可进行>,<,> ...
- [原创]Java常见笔试题知识点汇总
前天数梦工厂来学校招聘,笔试题比较有特点,全是Java题,基本就是Java的一些特点.凭记忆按照题目找到一些必备知识点 (1). try {}里有一个return语句,那么紧跟在这个try后的fina ...
- 深圳市利汇电子商务科技有限公司2019年java面试笔试题
垃圾公司,建议不要去,写的地址去了发现是两个公司公用一个办公场地,还没有公司的招牌,去了交简历给前台然后就是 填一份求职申请,一份笔试题如下,然后就等待,先是人事的一个小妹妹面试,问一些个人问题,为什 ...
- 大公司最喜欢问的Java集合类面试题
看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧. java.util包中包含了一系列重要的集合类,而对于集合类,主要 ...
随机推荐
- [Android] 获取音频输出getOutput
每创建一个AudioTrack,代表需要新增一个输出实例,即需要根据音频流的的stream type,音频流的音轨数量,采样率,位宽等数据来重新构建buffer,而且输出的设备也可能会有变化,由于An ...
- Windows消息拦截技术的应用
Windows消息拦截技术的应用 民航合肥空管中心 周毅 一.前 言 众所周知,Windows程式的运行是依靠发生的事件来驱动.换句话说,程式不断等待一个消息的发生,然后对这个消息的类型进行判断,再做 ...
- COJ 1011 WZJ的数据结构(十一)树上k大
题解:主席树&DFS序. PS:为什么我一开始Wa了N发 是因为有一个左区间我写成[L,M+1]了.......................... #include<iostream ...
- COJ 3012 LZJ的问题 (有向图判环)
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=1042 试题描述: LZJ有一个问题想问问大家.他在写函数时有时候很头疼,如 ...
- 第2个Wiindows程序讲解
上次,我们一起写了一个Windows窗口程序,这个窗口程序虽然非常简单,但是,代码仍然很多,相信,一定会有很多初学者看见这些代码而感到头疼.不用怕,现在,我们就一起来分析一下这些代码,相信通过我们共同 ...
- fmt命令
简单的格式化文本 fmt [option] [file-list] fmt通过将所有非空白行的长度设置为几乎相同,来进行简单的文本格式化 参数 fmt从file-list中读取文件,并将其内容的格式化 ...
- 【转】 Linux中的工作队列
原文网址:http://blog.chinaunix.net/uid-20583479-id-1920134.html 工作队列一般用来做滞后的工作,比如在中断里面要做很多事,但是比较耗时,这时就可以 ...
- 【转】深层次探讨mutex与semaphore之间的区别(下)
原文网址:http://blog.chinaunix.net/uid-23769728-id-3173282.html 这篇博文很长,虽然这是下篇,但还没结束,benchmark方面的东西正在进行中, ...
- Hadoop MapReduce InputFormat/OutputFormat
InputFormat import java.io.IOException; import java.util.List; /** * InputFormat describes the input ...
- <转>libjpeg解码内存中的jpeg数据
转自http://my.unix-center.net/~Simon_fu/?p=565 熟悉libjpeg的朋友都知道libjpeg是一个开源的库.Linux和Android都是用libjpeg来 ...