zoukankan      html  css  js  c++  java
  • 20个最佳的Java集合框架面试题目

    转自: http://mp.weixin.qq.com/s?__biz=MjM5MDAxNjkyMA==&mid=400525603&idx=1&sn=6fa99b025c7e701ac1272f256556e387&scene=0#wechat_redirect

     

    20个最佳的Java集合框架面试题目

    2015-11-11 小象

    译者:荔枝壳

    原文链接:http://www.instanceofjava.com/2015/07/collections-interview-questions-java.html

    小象科技原创作品,欢迎大家疯狂转发;

    机构、自媒体平台转载务必至后台留言,申请版权。

    1为什么Map接口不继承Collection 接口?

    · Set是无序集合,并且不允许重复的元素

    · List是有序的集合,并且允许重复的元素

    · 而Map是键值对

    · 它被视为是键的set和值的set的组合

    · Map被设计为键值对的集合,所以不需要继承Collection 接口

     

    2HashMap和Hashtable之间的区别?

    · 同步或线程安全

    · Null键和Null

    · 迭代值

    · 默认容量大小

     

    3comparable 和 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()方法

     

    5fail-fast 与 fail-safe 之间的区别?

    · Fail fast快速地报告任何的failure。无论何时任何一个问题都会引发 fail fast系统fails

    · 在Java Fail fast 迭代器中,迭代objects集合有时会出现并发修改异常,出现这种情况有2个原因

    · 如果一个线程正在迭代一个集合,而另一个线程同时试图修改这个集合

    · 在调用remove()方法后,如何我们还试图去修改集合object

     

    6Iterator、ListIterator 和 Enumeration的区别?

    · Enumeration接口在Java1.2版本开始有,所以Enumeration是合法规范的接口

    · Enumeration使用elements()方法

    · Iterator对所有Java集合类都有实现

    · Iterator使用iterator方法

    · Iterator只能往一个方向前进

    · ListIterator仅仅对List类型的类实现了

    · ListIterator使用listIterator()方法

     

    7Java 中 Set 与 List 有什么不同?

    · Set是一个不允许重复元素存在的集合

    · Set没有索引

    · Set仅仅允许一个null

    · Set有类:HashSetLinkedHashMapTreeSet

    · List有索引

    · List允许Nnull

    · List可以按插入顺序显示

    · List有类:VectorArrayListLinkedList

     

    8arraylist 与 vector 的区别?

    · Vector Java的第一个版本就引入了,也就是说vector是一个合法规范的类

    · ArrayListJava1.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的接口继承关系?

    14Iterator符合哪个设计模式?

    · Iterator 设计模式

     

    15HashSet 实现了哪个数据结构?

    · HashSet 内部实现了hashmap

     

    16为什么 Collection 不能继承 Cloneable 和 Serializable?

    · ListSet唯一继承 Collection 接口

    · SortedMap 继承了 Map 接口

     

    17hashCode() 和 equals() 方法的重要性?如何在Java中使用它们?

    · hashCode() equals() 方法定义在"object"类中

    · 如果equals() 方法在比较2个对象时返回true,那么hashCode()的返回值必须得一样

     

    18array 和 arraylist 的区别?

    · Array类似object集合类型,大小固定

    · Arraylist是同质和异质元素的集合

     

    19什么是 Properties 类?

    · Properties Hashtable的子类。它被用于维护值的list,其中它们的键、值都是String类型

     

    20如何将一个字符串转换为arraylist?

    · 使用 arrayList.toArray() 方法

     


    参与本文讨论请猛戳“阅读原文”

    Read more
     
  • 相关阅读:
    SQL Server 添加数据库没有权限等
    网站图片优化的重要性与技巧方案
    5年前端经验小伙伴教你纯css3实现饼状图
    css3 斜切角/斜边的实现方式来自BAT大神的出品
    Validate表单验证插件之常用参数介绍
    html实现邮箱发送邮件_js发送邮件至指定邮箱功能
    css重设样式_清除浏览器的默认样式
    大厂前端工程师教你如何使用css3绘制任意角度扇形+动画
    WordPress教程之如何批量删除未引用(无用)的TAG标签
    css引入的方式有哪些_四种css的引入方式与特点
  • 原文地址:https://www.cnblogs.com/leoncfor/p/4958039.html
Copyright © 2011-2022 走看看