文章目录
五、Map集合【重要】
特点:
- 用于存储任意键值对(k-v)
- key不能重复,唯一。无序、无下标
- value可以重复。无序、无下标
1、hashMap
存储结构:哈希表(数组+链表+红黑树)
方法:
- put(k,v);存入
- get(k);取值
- containsKey();判断是否包含key
- containsValue();判断 是否包含value
- entrySet();返回映射关系中包含的映射视图
- keySet();返回映射关系中包含的键的映射视图
package com.zheng.demo4;
import javax.lang.model.element.NestingKind;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MyMap {
public static void main(String[] args) {
//1、创建集合
Map<String, String> map = new HashMap<>();
//2、塞入值
map.put("A", "我是A");
map.put("B", "我是B");
map.put("C", "我是C");
map.put("D", "我是D");
//判断
System.out.println(map.containsKey("A"));
System.out.println(map.containsValue("我是C"));
System.out.println("map集合大小:" + map.size());
System.out.println("打印:" + map.toString());
//遍历1、使用keyset
System.out.println("=======使用keyset=======");
Set<String> set = map.keySet();
for (String s : set) {
System.out.println(s + "=======" + map.get(s));
}
System.out.println("=======使用entryset=======");
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> entry : entries) {
System.out.println(entry.getKey() + "========" + entry.getValue());
}
//简化
System.out.println("+===简化====+");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "========" + entry.getValue());
}
}
}
jdk1.8后当链表长度大于8,转化为红黑树存储
jdk1.8后,当链表长度小于6,转化为链表存储
map集合的实现类
- HashMap
jdk1.2版本,线程不安全,运行快;允许null为key或者value - Hashtable
jdk1.0版本,线程安全,运行慢,不允许null为key或者value - properties
Hashtable的子类,使用String作为key或者value.通常用于配置文件的读取
六、Collections工具类
package com.zheng.demo5;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MyCollection {
public static void main(String[] args) {
List arrayList = new ArrayList();
arrayList.add(4);
arrayList.add(1);
arrayList.add(5);
arrayList.add(3);
arrayList.add(6);
arrayList.add(2);
System.out.println(arrayList.toString());
System.out.println("调用排序工具类");
//调用工具类排序
Collections.sort(arrayList);
System.out.println(arrayList.toString());
}
}
总结
集合的概念
对象的容器,和数组相似,定义了多个对象进行操作的常用方法
List集合
有序、有下标、元素可以重复(ArrayList,LinkedList,Vector)
set集合:
无序、无下标、元素不可重复(HashSet,TreeSet)
Map集合
存储一对数据,无序,无下标,键不可重复,值可以重复(HashMap,HashTable,TreeMap)
Collection
s:
- 集合工具类,定义了除存取以外的集合常用方法