集合方面个人理解

1.Hash的工作原理你知道吗 HashMap的get方法

       HashMap是基于hash算法实现的通过put(key,value)存储对象到HashMap中
        也可以通过get方法从HashMap中获取对象

2.HashSet与HashMap的区别

             hashmap实现了Map接口
             HashSet实现了Set接口
             HashMap存储键值对
             HashSet存储对象
             HashMap使用put方法将元素放入map中
             HashSet使用add方法将元素放入set中
             HashMap中使用键对象来计算hashcode值
             HashSet中使用成员对象来计算hashcode值
             HashMap 速度快 因为是使用键来获取对象
             Hashset相对于HashMap比较慢

3.HashTable与Hashmap的区别

          HashTable方法是同步的
          HashMap方法不是同步的
          HashTable基于Dictionaty类
          HashMap基于AbstractMap 
           HashTable里key和value都不可以为null 遇到null会返回NullPointerException
           HashMap中key和value都可以为null如果遇到会调用putForNullKey方法处理对value没有处理

4.Arraylist linkedlist vector的区别

  存储结构:ArrayList和vector是按照顺序进行存储的. ArrayList和vector都是基于数组实现 而LinkedList
  是基于双向链表实现.
  线程安全性:Arraylist不具有线程安全性 在单线程的情况下linkedlist也是线程不安全的.如果在并发的情况下
  使用他们可以用collections类中的synchronizedlist方法对他们进行调用即可.
  vector是线程安全的他的大部分方法都包含了关键字synchronized 但是vector的效率没有
  arraylist和 linkedlist高

5.HashMap与HashTable的区别

        他们都是实现了map接口但是决定用哪一个之前要区分 主要的区别就    
        是 线   程的安全 同步 以及hashMap不是同步的 Hashtable是同步的
        这就意味hashTable是线程安全的多个线程可以共享这个Hashtable 但是Java5         
        推出了Con rrentHashMap 他是HashTbale的替代 它的扩展性更好.

你可能感兴趣的:(集合方面个人理解)