java基础知识清单(二)

  1. java 容器都有哪些?

  1. Collection 和 Collections 有什么区别?
    1. java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
    2. Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

    3. Collections常用API

      1.  boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素

      2.  void shuffle(List<?> list) 打乱顺序:打乱集合顺序。

      3. void sort(List<T> list):将集合中元素按照默认规则排序。

  2. List、Set、Map 之间的区别是什么?

    比较ListSetMap
    继承接口CollectionCollection 
    常见实现类ArrayList,LinkedList,VectorHashSet,LinkedHashSet,TreeSetHashMap,HashTable
    常见方法add(),remove(),clear(),get(),contains(),size()add(),remove(),clear(),contains(),size()

    put(),get(),remove(),clear(),

    containsKey(),containsValue()

    keySet(),values(),size()

     

    元素可重复不可重复不可重复
    排序有序无序 
    线程安全Cector线程安全 HashTable线程安全
  3. HashMap 和 Hashtable 有什么区别?
    1. hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
    2. hashTable同步的,而HashMap是非同步的,效率上逼hashTable要高。

    3. hashMap允许空键值,而hashTable不允许。

  4. 说一下 HashMap 的实现原理?

    1. ​​​​​​​

      HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 

      HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。

      当我们往Hashmap中put元素时,首先根据key的hashcode重新计算hash值,根绝hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾.如果数组中该位置没有元素,就直接将该元素放到数组的该位置上。

      需要注意Jdk 1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)到O(logn)

  5. 说一下 HashSet 的实现原理?

    1. HashSet底层由HashMap实现

    2. HashSet的值存放于HashMap的key上

    3. HashMap的value统一为PRESENT

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值