以下都是个人见解,如有错误,欢迎指正。
根据存储的方式,集合可以分为Collection集合接口(单个存储)和Map集合接口(键值对方式存储)。
Map接口,以键值对存储元素,无序不可重复。key和value都是存储Java对象的【内存地址】。
接下来对Map一些常用的方法进行介绍。
创建Map集合对象。以HashMap集合为例。
Map<Integer,String> a1=new HashMap<>();
//创建HashMap对象,key为Integer包装类,value为String类。引用a1.
V put(K key, V value) 【添加元素/键值对】
a1.put(1,"第一名");//这里的数字1使用字自动装箱。
a1.put(2,"第二名");
a1.put(3,"第三名");
a1.put(4,"第四名");
V remove(Object key) 【通过key,移除键值对】
a1.remove(1);
V get(Object key) 【通过key获取对应value】
System.out.println(a1.get(4));//第四名
boolean containsValue(Object value) 【判断是否包含value】
System.out.println(a1.containsValue(10));//false
boolean containsKey(Object key) 【判断是否包含key】
System.out.println(a1.containsKey(2));//true
boolean isEmpty()【判断键值对个数是否为空】
System.out.println(a1.isEmpty());//false
int size() 【获取键值对的个数】
System.out.println(a1.size());//3
Set keySet() 【获取Map所有的key,返回一个Set集合】
Set<Integer> a2=a1.keySet();//Integer为key的类型,key的集合为a2
System.out.println(a2);//[2, 3, 4]
Collection values() 【获取Map所有的value,返回一个Collection】
Collection<String> collection=a1.values();
System.out.println(collection);//[第二名, 第三名, 第四名]
采用Set<Map.Entry<K,V>> entrySet() 和迭代器遍历。
//所有元素是Map.Entry<K,V>类型。将key和value视为一个整体。
Set<Map.Entry<Integer,String>> aa1=a1.entrySet();
//用迭代器遍历
Iterator<Map.Entry<Integer,String>> it1=aa1.iterator();
while (it1.hasNext()){
Map.Entry<Integer,String> point=it1.next();//得到每个整体元素
Integer kkey=point.getKey();//得到key
String vvalue=point.getValue();//得到value
System.out.println(kkey+"--->"+vvalue);
}// 2--->第二名 3--->第三名 4--->第四
//注意,这里不能简写为 System.out.println(it1.next().getKey()+"--->"+it1.next().getValue());
//否则结果为2--->第三名 报错
采用Set<Map.Entry<K,V>> entrySet() 和增强for遍历。
for (Map.Entry<Integer,String> aaa1:aa1){
System.out.println(aaa1.getKey()+"--->"+aaa1.getValue());
}// 2--->第二名 3--->第三名 4--->第四名
void clear() 【清空Map】
a1.clear();
System.out.println(a1.size());//0