1、

一、collection (有序)接口的实现的接口 set  list

其中set接口的实现类是HashSet,List接口的实现类是ArrayList、LinkList、Vector

二、Map(无序)接口的实现类是HashMap、HashTable

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

2、Collection 和 Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set 和List.  Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

3、HashMap和Hashtable的区别。

HashMap是Hashtable的轻量级实现(非线程安全 的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。  HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。  HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。  最大的不同是,Hashtable的方法是Synchronize 的,而HashMap不是,在多个线程访

问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。  Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

4、List, Set, Map是否继承自Collection接口?

List,Set是,Map不是

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

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

6、你所知道的集合类都有哪些?主要方法?

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

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

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

8、ArrayList和Vector的区别,HashMap和Hashtable的区别

答:就ArrayList与Vector主要从二方面来说. 一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半  就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

最新文章

  1. 烂泥:php5.6源码安装与apache集成
  2. 在linux下运行java工程
  3. golang time and duration
  4. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
  5. 删除右键ATI CATALYST(R) Control Center的方法
  6. 《Java程序设计》第六周学习总结
  7. Oracle GoldenGate 12c中的协同交付(Coordinated Delivery)
  8. 从开发的角度比较 ASP.NET Web 服务与 WCF
  9. Javascript获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
  10. kali 重置 mysql 密码
  11. jquery 父页面 子页面 同级页面 调用
  12. Ms SQLServer中的Union和Union All的使用方法和区别
  13. windows下mysql 控制台操作
  14. MLlib-聚类
  15. _js day11
  16. java附件上传下载大字段版
  17. jq商品展示图放大镜 and 原生js和html5写的放大镜效果 ~~效果不错
  18. Android实用代码七段(三)
  19. openresty + lua-resty-weedfs + weedfs + graphicsmagick动态生成缩略图(类似淘宝方案)
  20. nginx常用场景

热门文章

  1. Web存储使用详解(本地存储、会话存储)
  2. Linux命令提示符的配置
  3. ABAP内表数据做层次XML输出
  4. 使用基本 SQL 命令
  5. Spring笔记:IOC基础
  6. LeetCode:反转字符串中的元音字母【345】
  7. 用cocos2d-html5做的消除类游戏《英雄爱消除》——概述
  8. socket通信——通过Udp传输方式,将一段文字数据发送出去
  9. ncl 实例参考
  10. 《程序员代码面试指南》第二章 链表问题 删除中间节点和a/b处节点