1、Collection和Collections的差别

java.util.Collection 是一个集合接口,Collection接口在Java类库中有非常多详细的实现。比如List、Set

java.util.Collections 是针对集合类的一个帮助类,它提供了一系列的静态方法实现对各种集合的搜索、排序、线程安全化等操作。

2、ArrayList与Vector的差别

这两个类都实现了List接口(List接口继承自Collection接口)。它们都是有序集合。它们内部的元素都是能够反复的,都能够依据序号取出当中的某一元素。

它们两个的差别在于:

(1)、线程安全的问题:Vector是早期Java就有的,是同意多线程操作的。是线程安全的;而ArrayList是在Java2中才出现,它是线程不安全的,仅仅能使用单线程

操作。 因为Vector支持多线程操作,所以在性能上就比不上ArrayList了。

相同的HashTable相比于HashMap也是支持多线程的操作而导致性能不如HashMap。

(2)、数据增长的问题

ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候。就须要添加ArrayList和Vector的存储空间,每次添加存储空间

的时候不是仅仅添加一个存储单元。是添加多个存储单元。

Vector默认添加原来的一倍,ArrayList默认添加原来的0.5倍。

Vector能够由我们自己来设置增长的大小,ArrayList没有提供相关的方法。

3、LinkedList与ArrayList有什么差别

两者都实现的是List接口。不同之处在于:

(1)、ArrayList是基于动态数组实现的,LinkedList是基于链表的数据结构。

(2)、get訪问List内部随意元素时。ArrayList的性能要比LinkedList性能好。LinkedList中的get方法是要依照顺序从列表的一端開始检查,直到还有一端

(3)、对于新增和删除操作LinkedList要强于ArrayList。由于ArrayList要移动数据

4、HashMap与HashTable的差别

两者都实现了Map接口。主要差别在于:

(1)、HashTable是早期Java就有的,支持多线程操作。是线程安全的。HashMap是Java2才出现的。是HashTable的轻量级实现,仅支持单线程操作。线程不安

全的。

(2)、HashMap同意空的key和value  HashTable不同意

5、List与Map的差别

List是存储单列数据的集合,Map是存储key和value这样双列数据的集合,List中存储的数据是有顺序的,而且同意反复。

Map其中存储的数据是没有顺序的,它

存储的key是不能反复的,value是能够反复的。

List继承Collection接口,Map不是。Map没有父类

6、List、Map、Set三个接口。存取元素时各有什么特点

首先List和Set都是单列元素的集合。它们有一个共同的父接口Collection。

List内的元素讲究有序性。内部元素可反复。可是Set恰恰相反。它讲究的是无序性,元素不可反复。Set的add方法有一个boolean的返回值,每当add一个新元

素的时候都会调用equals方法进行逐一比較,当新元素与全部的已存在元素的都不反复的时候add成功返回true。否则返回false。

Map与List和Set不同,它是双列存储的(键和值一一相应)。它在存储元素调用的是put方法,每次存储时,要存储一份key和value。不能存储反复的key,这个

反复的规则也是利用equals进行比較。取数据的时候则能够依据key获取value。另外还是以获得全部key的集合和全部value的集合。还能够获得key和value组成

的Map.Entry对象的集合。

7、Array与ArrayList有什么区别

①Array是Java中的数组,声明数组有三种方式

在定义一个数组的时候,必须指定这个数组的数据类型及数组的大小,也就是说数组中存放的元素个数固定并且类型一样

②ArrayList是动态数组,也就是数组的复杂版本,它可以动态的添加和删除元素,被称为”集合“,在不使用泛型的情况下,这个list是可以添加进不同类型的元素的,而且arraylist是可以不用指定长度的。在使用泛型时,我们就只能添加一种类型的数据了

8、怎样将一个数组转成List,有什么方法

①数组转list,可以使用Arrays.asList(数组)

②List转数组,使用list.toArray()

9、HashSet、TreeSet、LinkedHashSet区别?

可以从集合的使用场合回答面试官

①.需要速度快的集合,使用HashSet

②.需要集合有排序功能,使用TreeSet

③.需要按照插入的顺序存储集合,使用LinkedHashSet

10、HashMap和HashSet区别

a. HashMap实现了Map接口,HashSet实现了Set接口

b.HashMap存储键值对,HashSet存储对象

c.HashMap调用put()向map中添加元素,HashSet调用add()像set中添加元素

d.HashMap使用Key计算hasncode,HashMap使用成员计算Hashcode

HashMap相对于HashSet较快,因为它是使用唯一的键获取对象

HashSet较HashMap来说比较慢

11、HashMap的实现原理

通过put和get存储和获取对象,存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量。获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对。

java 关于集合的笔试题_Java集合面试题(一)相关推荐

  1. java集合框架的接口_Java集合框架——Set接口

    第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...

  2. java集合框架的接口_Java集合框架之Collection接口详解

    Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架.Java集合工具包位于Java.util包下 ...

  3. java jcf框架干啥的_Java集合框架体系JCF

    Java 集合框架体系作为Java 中十分重要的一环, 在我们的日常开发中扮演者十分重要的角色, 那么什么是Java集合框架体系呢? 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一 ...

  4. java集合的存储特征_Java集合常用类特点整理

    集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...

  5. java map与set的区别_java 集合(list,set,map)三者之间的关系和区别

    原 java 集合(list,set,map)三者之间的关系和区别 一:先上一张关系图,让大家看的更明白. 备注:其中红色部分为实现,其他地方均为接口. 二:各自的特点. List 有序,可重复Arr ...

  6. java 链表 最小堆优先级队列_Java集合细说

    Java集合类图关系思维导图,带对号标志的为线程安全类. 各集合类相关区别详解: 0x01:List Set Map Queue的区别 List有序,可以多个元素引用相同的对象 Set无序,不重复,不 ...

  7. Java哪些是线程安全的_Java集合中那些类是线程安全的

    线程安全类 在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的.在jdk1.2之后,就出现许许多多非线程安全的类. 下面是这些线程安全的同步的类: vector:就比arraylist多 ...

  8. java jcf框架干啥的_Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  9. java集合set不能去重_java集合去重和排序

    1.去重 1.1 for循环去重 for (int i = 0; i list.remove(j); j--; } } } 测试结果: ,感觉还是有点用的,感觉循环次数太多了,不推荐使用. List ...

最新文章

  1. 我佛了!用KNN实现验证码识别,又 Get 到一招!
  2. js中获取事件对象的方法小结
  3. 第一份工作是选择安逸,还是勇敢尝试?
  4. Mybatis if test 中int integer判断非空的坑
  5. Linux下C语言程序的内存布局
  6. 安装tensorflow出现超时,找不到指定模+python 各个指定版本安装
  7. 如何修复 WordPress 中的 HTTP 错误
  8. win10 MAC地址绑定及解绑
  9. 组态王图素制作_组态王教程 很实用
  10. 在线制作安卓手机主题
  11. error: You must be logged in to the server (Unauthorized)
  12. Python爬虫:盖楼抽奖还手动?自动的她不香吗?
  13. 微分与导数之一,切线
  14. phpcms2008网站漏洞如何修复 远程代码写入缓存漏洞利用
  15. 团队管理22-团队文化
  16. 数据可视化项目(一)
  17. 二维码生成工具微信小程序源码下载
  18. 天龙八部手游服务器等级哪里显示,天龙八部手游
  19. 03 # 网页元素的属性
  20. mmdetection的安装并训练自己的VOC数据集

热门文章

  1. java调用微信加密_用spring搭建微信公众号开发者模式下服务器处理用户消息的加密传输构架(java)...
  2. vue按钮Button
  3. 【BZOJ2152】聪聪可可,dfs+递推/点分治
  4. 【codevs2333】【BZOJ2002】弹飞绵羊,第一次的LCT
  5. 【BZOJ2038】小Z的袜子,第一次的莫队算法
  6. C ++ 指针 | 指针的操作_2
  7. 提出邀请Do you want..._43
  8. mysql 空字符串_NULL与MySQL空字符串的区别
  9. 2017.8.15 阿狸的打字机 失败总结
  10. 【Linux使用】Centos 7 GRUB与内核版本切换