Map集合
Map集合没有继承Collection接口,其提供点的是key到value的映射,Map中不能包含相同的key,每个key只能映射一个value。
我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同:
A:Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储
B:Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。
C:Collection中的集合称为单列集合,Map中的集合称为双列集合。
Map常用功能
A:映射功能:
V put(K key, V value) :以键=值的方式存入Map集合
B:获取功能:
V get(Object key):根据键获取值
int size():返回Map中键值对的个数
C:判断功能:
boolean containsKey(Object key):判断Map集合中是否包含键为key的键值对
boolean containsValue(Object value):判断Map集合中是否包含值为value键值对
boolean isEmpty():判断Map集合中是否没有任何键值对
D:删除功能:
void clear():清空Map集合中所有的键值对
V remove(Object key):根据键值删除Map中键值对
E:遍历功能:
Set<Map.Entry<K,V>> entrySet():将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
Set<K> keySet() :将Map中所有的键装到Set集合中返回
Collection<V> values():返回集合中所有的value的值的集合
- eg:
在项目中创建UpdateStu,在主方法中创建Map集合,并获取Map集合中所有key对象的集合和所有values值的集合,最后遍历。
package e6.Map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class UpdateStu {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String,String> map = new HashMap<>(); //创建Map对象
//向集合中添加对象
map.put("01", "李同学");
map.put("02", "王同学");
Set<String> set=map.keySet(); //构建Map集合中所有key对象的集合
Iterator<String> it = set.iterator();
System.out.println("key集合中的所有元素:");
while(it.hasNext()) {
System.out.println(it.next());
}
Collection<String> coll=map.values(); //构建Map集合中所有value值的集合
it=coll.iterator();
System.out.println("values集合中的元素:");
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
Map接口实现类
通过HashMap类实例化Map集合,并遍历该Map集合,然后创建TreeMap实例实现将集合中的元素顺序输出
public class Emp {
private String e_id;
private String e_name;
public Emp( String e_id,String e_name) {
this.e_id = e_id;
this.e_name = e_name;
}
public String getE_id() {
return e_id;
}
public void setE_id(String e_id) {
this.e_id = e_id;
}
public String getE_name() {
return e_name;
}
public void setE_name(String e_name) {
this.e_name = e_name;
}
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class MapText { // 创建类MapText
public static void main(String[] args) { // 主方法
Map<String, String> map = new HashMap<>(); // 由HashMap实现的Map对象
Emp emp = new Emp("351", "张三"); // 创建Emp对象
Emp emp2 = new Emp("512", "李四");
Emp emp3 = new Emp("853", "王一");
Emp emp4 = new Emp("125", "赵六");
Emp emp5 = new Emp("341", "黄七");
map.put(emp4.getE_id(), emp4.getE_name()); // 将对象添加到集合中
map.put(emp5.getE_id(), emp5.getE_name());
map.put(emp.getE_id(), emp.getE_name());
map.put(emp2.getE_id(), emp2.getE_name());
map.put(emp3.getE_id(), emp3.getE_name());
Set<String> set = map.keySet(); // 获取Map集合中的key对象集合
Iterator<String> it = set.iterator();
System.out.println("HashMap类实现的Map集合,无序:");
while (it.hasNext()) { // 遍历Map集合
String str = (String) it.next();
String name = (String) map.get(str);
System.out.println(str + " " + name);
}
TreeMap<String, String> treemap = new TreeMap<>(); // 创建TreeMap集合对象
treemap.putAll(map); // 向集合添加对象
Iterator<String> iter = treemap.keySet().iterator();
System.out.println("TreeMap类实现的Map集合,键对象升序:");
while (iter.hasNext()) { // 遍历TreeMap集合对象
String str = (String) iter.next(); // 获取集合中的所有key对象
String name = (String) treemap.get(str); // 获取集合中的所有values值
System.out.println(str + " " + name);
}
}
}