java 容器都有哪些Collection 和 Collections 有什么区别java.util.Collection 是一个集合接口集合类的一个顶级接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式其直接继承接口有List与Set。Collections则是集合类的一个工具类/帮助类其中提供了一系列静态方法用于对集合中元素进行排序、搜索以及线程安全等各种操作。Collections常用APIboolean addAll(CollectionT c, T... elements):往集合中添加一些元素void shuffle(List? list) 打乱顺序:打乱集合顺序。void sort(ListT list):将集合中元素按照默认规则排序。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线程安全HashMap 和 Hashtable 有什么区别hashMap去掉了HashTable 的contains方法但是加上了containsValue和containsKey方法。hashTable同步的而HashMap是非同步的效率上逼hashTable要高。hashMap允许空键值而hashTable不允许。说一下 HashMap 的实现原理​​​​​​​HashMap概述 HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作并允许使用null值和null键。此类不保证映射的顺序特别是它不保证该顺序恒久不变。HashMap的数据结构 在java编程语言中最基本的结构就是两种一个是数组另外一个是模拟指针引用所有的数据结构都可以用这两个基本结构来构造的HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构即数组和链表的结合体。当我们往Hashmap中put元素时,首先根据key的hashcode重新计算hash值,根绝hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾.如果数组中该位置没有元素,就直接将该元素放到数组的该位置上。需要注意Jdk 1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)到O(logn)说一下 HashSet 的实现原理HashSet底层由HashMap实现HashSet的值存放于HashMap的key上HashMap的value统一为PRESENT