导语
  Java 面试题集2021版

Java基础部分六

  • 62、ArrayList和LinkedList 有什么异同之处?
  • 63、HashMap和HashTable的区别
  • 64、List和Map的区别?
  • 65、List、Set、Map是否继承自Collection接口?
  • 66、List、Map、Set 三个接口,存储元素的时候,各有什么特点?
  • 67、说出ArrayList、Vector、LinkedList的存储性能和特性
  • 68、如何去掉一个Vector集合中重复的元素?
  • 69、Collection 和Collections的区别
  • 70、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用== 还是equals()?它们有何区别?
  • 71、举例集合类都有哪些?主要的方法有哪些?
  • 72、列出常用的容器类也就是集合类,简单说明其功能

62、ArrayList和LinkedList 有什么异同之处?

  ArrayList,它实现了可变长度的数组,和数组采用的是相同的存储方式,在内部分配了连续的空间。优点在于遍历元素和随机访问元素的效率比较高。
  LinkedList 采用链表存储方式,它提供了addFirst(),addLast(),removeFirst(),removeLast(),可以在LinkedList的首部或尾部插入或删除元素。优点在与插入,删除元素的效率比较高。

63、HashMap和HashTable的区别

  HashMap是HashTable的轻量级实现(非线程安全的实现),它们都完成了Map接口,主要区别在于HashMap允许空的键值,由于非线程安全,在只有一个线程访问的情况下效率要高于HashTable。

  HashMap允许将null作为一个entry的key或者是value,而在HashTable是不被允许的。

  HashMap把HashTable 的contains方法去掉了,改成containsValue和containsKey。因为contains方法容易会让使用者产生误解。

  HashTable继承自Dictionary类,而HashMap是Java1.2 引入的Map 接口的实现,最大的不同是,HashTable 的方法是Synchronize的,而HashMap不是,在多线程访问HashTable时,不需要自己为它的方法实现同步,而HashMap就必须为它提供额外的同步操作,HashTable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

64、List和Map的区别?

  List是存储单列数据集合,Map是存储键值这样的双列数据的集合;
  List中存储的数据是有顺序的,并且允许重复;
  Map 中存储的数据是没有顺序的,键不能重复,值是可以重复的。

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

  List,Set是,Map 不是

66、List、Map、Set 三个接口,存储元素的时候,各有什么特点?

  首先,List与Set具有相似性,它们都是单列元素的集合,所以它们继承了同一个父接口,Collection。Set里面不允许有重复的元素,所谓的重复,就是不能有两个相等的对象或者是内容元素,这个跟数学性质一样,也就是说在Set集合中,有一个A对象,如果继续放入一个A对象的话,是不能进行存储的。所以Set集合的Add方法有一个boolean的返回值,当集合中没有这个元素时,此时add方法可以加入该元素,返回结果为true,当集合中包含有相同元素的时候,则返回值为false。Set区元素时,没有说取第几个,只能通过Iterator接口取得所有元素,然后在进行逐个的遍历。

  List 表示有先后顺序的集合,当多次调用add方法的时候,每次加入的元素就是按照顺序添加到其中。当然在这个顺序的序列中还可以存在插队,对于插队来讲可以调用add(index,Object)方法,通过这个方法可以指定对象放入到集合中的指定的位置。如果同一个对象被反复存储进List中,每次调用add方法,这个对象就被插入进集合中一次,并不是把这个对象本身存储到集合中,而是在集合中存储一个索引到指向对应的这个对象,当这个对象被多次add的时候,即相当于集合中有多个索引指向了这个对象。List出了可以以Iterator接口取得所有的元素,在逐个遍历各个元素之外,还可以调用get(index)来明确说明调用第几个元素。

  Map与List 和Set 不同,它是双列的集合,其中有put方法,定义 put(obj key,obj value),每次存储时,要存储一个key/value,不能存储重复的key,这重复的规则也是按equals比较相等。取则可以根据key获取到对应的value,即通过get(Object key) 返回值key所对应的value。另外,也可以获得所有的key的结合,还可以获取所有的value集合,可以获取到所有key和value组成的Map.Entry对象集合。

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

  HashSet 按照 hashCode 值得某种运算方式进行存储,而不是直接按hashCode的值得大小进行存储。

67、说出ArrayList、Vector、LinkedList的存储性能和特性

  ArrayList 和Vector 都是使用数组方式存储数据,此数组元素大于实际存储的数据以便增加和插入元素,它们都允许直接通过索引号进行元素查询,但是插入元素的时候就会涉及到元素的移动以及内存的操作,所以查找数据快而插入数据效率低,Vector由于使用了synchronized 同步方法,通常在使用性能上比ArrayList要差。

  LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或者是后向的遍历,但是插入数据时只需要记录本项的前后项即可,所以插入的数据较快。

  LinkedList 也是线程不安全的,LinkedList提供了一些方法,是的LinkedList可以被当做堆栈和队列来使用。

68、如何去掉一个Vector集合中重复的元素?

Vector newVector = new Vector();
for(int i=0;i<vector.size();i++){Object obj = vector.get(i);if(!newVector.contains(obj));newVector.add(obj)
}

  当然还有一种简单的方式,HashSet set = new HashSet(vector);因为Set集合中不允许出现重复的元素,所以自然会去掉重复的元素。

69、Collection 和Collections的区别

  Collection 是集合类的顶级接口,继承它的接口主要有Set和List。
  Collections 是针对集合框架的一个算法工具类,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

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

  Set里面的元素是不能重复的,在Set集合内部实现元素重复与否的判断是使用equals()方法进行比较。两个比较方式的区别是

  • 1、equals() 比较对象值是否相等
  • 2、== 比较的是对象的内存地址是否相同

71、举例集合类都有哪些?主要的方法有哪些?

  最常用的集合类是List和Map。List的具体实现包括ArrayList 和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按顺序索引访问元素的情形,Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对。其中每一个键映射到一个值。对于方法来说就是对这些集合中元素的增删改查的功能。例如 add() ,remove(),get() contains()等方法。

72、列出常用的容器类也就是集合类,简单说明其功能

  Java容器类Collection、List、ArrayList、Vector以及Map、HashTable、HashMap。Collection是List、Set两个接口的父接口,List在Collection 上增加了有序的特性,而Set增加了唯一的特性;ArrayList 是有序不唯一的;Vector(向量类)可以实现类似动态数组的功能,但是有区别与C语言中的概念,因为Java中是不存在指针的概念,相对于ArrayList而言,Vector 线程是安全的,也就是说是支持线程同步的,创建了一个Vector类的对象后,可以往其中随意地插入不同的类的对象,既不需顾及类型也不需预先选定向量的容量,就可以方便地进行查找;
  Map不能包括两个相同的键,它是无序的,但是Map的值是可以重复的;
  HashTable 是Dictionary 类 的子类,缺省是线程同步的,不允许关键字或者为null;HashMap是Map 接口的实现类,缺省情况下是非同步。

Java校招笔试题-Java基础部分(六)相关推荐

  1. Java校招笔试题-Java基础部分(三)

    导语   Java 面试题集2021版 Java基础部分三 26.说说has a 与is a的区别 27.一个房间里有一把椅子,椅子有四条腿,房子和椅子是什么关系,椅子和椅子腿是什么关系? 28.什么 ...

  2. Java校招笔试题-Java基础部分(七)

    导语   Java 面试题集2021版 Java基础部分七 73.Set 和List的区别? 74.集合框架中Collection 和Arrays 类的作用 75.TreeSet 里面放对象,如果同时 ...

  3. Java校招笔试题-Java基础部分(五)

    导语   Java 面试题集2021版 Java基础部分五 47.String 和String Buffer的区别 48.StringBuffer和StringBuilder的区别 49.数组有没有l ...

  4. Java校招笔试题-Java基础部分(四)

    导语   Java 面试题集2021版 Java基础部分三 37.abstract 的method 是否可同时是static,是否可同时是native,是否可同时是synchronized? 38.什 ...

  5. Java校招笔试题-Java基础部分(二)

    导语   Java面试题集2021版 Java基础部分二 14.hashCode方法的作用? 15.写clone()方法时,通常都有一行代码,这行代码是什么? 16.静态变量和实例变量的区别? 17. ...

  6. Java校招笔试题-Java基础部分(一)

    导语   Java面试题集2021版 Java基础部分 1.一个.java 源文件中是否可以包括多个类(不是内部类)?有什么限制? 2.Java中有没有goto? 3.说说& 和 && ...

  7. Java工程师笔试题整理[校招篇]

    Java工程师笔试题整理[校招篇] 阿里巴巴 2016 阿里巴巴2016研发工程师笔试题(四) 阿里巴巴2016研发工程师笔试题(三) 阿里巴巴2016研发工程师笔试题(二) 2015 阿里巴巴201 ...

  8. java校招笔试题目_Java校招笔试题

    2020校招笔试题答案及评分标准 满分100分 时间1小时 一.简答题: (5分)写出你用过的linux命令,举例说明其中几个的具体用法. 答案:略.评分标准:正确五个,1分一个. (5分)写出TCP ...

  9. 2014宇龙酷派校招西安java类笔试题(热乎的,还冒烟呢)

    2014宇龙酷派校招西安java类笔试题(热乎的,还冒烟呢) 分类: 校招笔经 or 面经2013-09-18 16:19 674人阅读 经过了 叫人伤感的 阿里,我决定去 这些小公司找找 信心,今天 ...

最新文章

  1. JavaScript文件中调用AngularJS内部方法或改变$scope变量
  2. java文件下载controller_Java Spring MVC 上传下载文件配置及controller方法详解
  3. 虚拟空间独立服务器哪个好,共享虚拟主机和独立哪个好
  4. linux挂载查看、添加与取消
  5. 后端开发如何设计数据库系列文章(一)设计传统系统表结构(Java开发)
  6. 程序员怒了!阿里 Antd 圣诞彩蛋害我被离职了!
  7. cluster oracle修改,Oracle 修改集群的资源属性(依赖关系)
  8. Vue学习笔记之15-vue-router详解
  9. Struts原理、开发及项目实施
  10. php大马的使用教程,一php大马,值得研究
  11. 腾讯云服务器入门使用流程 新手必看教程
  12. shiny教程一 -- shiny入门
  13. 【excel】开启了循环引用怎么关闭
  14. docker安装linux-ubuntu桌面环境
  15. python 获取qq群成员信息_用Python编写工具获取QQ群成员的昵称和号码,使用,及,小...
  16. IntelliJ IDEA 官方网站
  17. Ubuntu下软件安装
  18. html中国家的下拉列表,jQuery Select下拉列表国家选择插件
  19. Jmeter源码分析(二)
  20. 跑步耳机哪种好,目前最适合运动的五款耳机推荐

热门文章

  1. java扑克牌排序_扑克牌排列 运用List ArrayList Arrays
  2. 如何用python处理txt_python处理txt文件操作
  3. 【java】关于Map的排序性的一次使用,有序的Map
  4. Seven times have I despised my soul 《我曾七次鄙视自己的灵魂》
  5. maven 相关操作
  6. 用SQL语句创建Access表
  7. set、vector与list的构造与排序的耗时测试
  8. 云上的数据安全,是企业互联网化发展的生命线!
  9. mysql千万级数据量根据索引优化查询速度
  10. iptables命令结构之目标