



-
- addAll:合并的元素拿出放到自己元素后面。
- containsALl:判断集合中的元素是否全都存在
- removeAll 将集合参数中的元素中出现的逐个删除
- indexOf:第一次出现的位置
- lastINdexOf最后一次出现的位置。
因为List接口和Map接口都实现了Collection,所有它们的子类都实现以上方法,所有继承之List和Map的类都能使用以上方法。
| 属性 | List | set |
| 有序性 | 有序 | 无序 |
| 唯一性 | 不唯一 | 唯一 |
| 获取元素 | 索引 | 无法直接获取 |
注意:我们常说的有序和无序有两种情况,一种是存进去的顺序和取出来的顺序是一样的叫有序;一种是存进去之后java内部以某种固定的排序方法排序我们也叫有序。List和Set的有序和无序针对的是第一中情况,取出来的顺序和拿出来的顺序是一样,叫做有序。

ArrayList和LinkedList的比较
| 增加 | 删除 | 修改 | 查询 | |
| ArrayList | 慢 | 慢 | 快 | 快 |
| LInkedList | 快 | 快 | 慢 | 慢 |
底层是HashMap,我们存进去的值当作key,value由java内置一个常量代替。
继承之HashSet。有序的hashMap。
底层:平衡有序二叉树(TreeMap)。要注意的是,存进去的数据要可以比较,如果不能比较,就要实现Comparable方法,重写ComparaTo方法。


底层采用数组加单向链表实现,线程不安全,key和value可以为空。
- public static void main(String[] args) {
- Map
map = new HashMap<>(); - map.put("name","ze");
- map.put("age","14");
- map.put("sex","男");
- //修改
- map.put("sex","女");
- //计算长度
- System.out.println(map.size());
- //通过key获取value
- System.out.println(map.get("name"));
- //判断是否为空
- System.out.println(map.isEmpty());
- //查找是否有该key,和该value。返回boolean值
- System.out.println(map.containsKey("age"));
- System.out.println(map.containsValue("14"));
- //putAll.向一个map中添加另一个map的数据
- Map
map1 = new HashMap<>(); - map1.put("color","red");
- map1.put("id","1");
- map.putAll(map1);
- System.out.println(map);
- //清除map中的内容
- map1.clear();
- System.out.println(map1);
- //remove,更具key删除。
- map.remove("age");
- System.out.println(map);
-
-
- }
和HashMap相似,但是它线程安全且key和value不能为空;而HashMap可以为空。
HashMap线程不安全,HashTable线程安全;HashMap的key和value可以为空,但是HashTable的不可以为空。

HahsMap和Hashtable的key都是无序的,但是java还提供了一个有序的LinkedMap。
底层采用有序平衡二叉树。

| 线程是否安全 | List | Map | String |
| 线程不安全 | ArrayList、LinkedList、HashSet、 | HashMap | StringBuilder |
| 线程安全 | Vector | HashTable | StringBuffer |
| 数据结构 | 代表 | 特点 |
| 数组 | ArraXxx | 查询快,增删慢,元素有序可重复 |
| 链表 | LinkedXxx | 增删快,查询慢,元素有序可重复 |
| 哈希表 | HashXxx | 实现依赖hashCode()和equals(),元素无序不可重复 |
| 二叉树 | TreeXxx | 两种方式排序:自然排序和比较器(Comparable)排序,元素有序不可重复 |
| LinkedHsahXxx | 有序不可重复 |
可以发现,当某一个集合是HashXxx的时候,它的不可重复是依赖于hashCode()和equals();当一个集合是TreeXxx的时候,它的有序和不可重复是依赖于重写Comparable。