---------------------- android培训 、java培训 、期待与您交流! ----------------------
Map 集合:该集合存储键值对,一对一对往里存储,且必须保证健的唯一性
Map
HashTable 底层是哈希表数据结构,不能存储空,线程同步
HashMap 底层是哈希表数据结构,允许空健空值,线程不同步。
TreeMap 底层是二叉树数据结构,线程不同步,可以给map集合中的健进行排序
set集合底层就是使用map集合
1 添加
put();如果出现相同的健,后添加的值,后出现的值会覆盖原有的值,且会返回被覆盖的值
2 删除
clear();
remove();
3 判断
containsKey();
containsValue();
4 获取
get();
size()
values();
Set<> keySet(); 将Map中所有的健存入到Set集合,因为set具备迭代器,所以可以迭代方式取出所有的健
,然后根据get方法,获取对应的值
Set<> entrySet(); 将Map集合中的映射关系存入到set集合中,而这个关系的数据类型就是:Map.Entry
Map.Entry :其实Entry也是一个接口,他是Map接口中的一个内部接口
interface Map{
public static interface Entry{
public abstart Object getKey();
piblic abstart Object getValue();
}
}
遍历实例
public class Zi {
private String name;
private int age;
public Zi(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class Test {
public static void main(String[] args) {
HashMap<Zi, String> hm = new HashMap<Zi, String>();
hm.put(new Zi("aa",1), "a");
hm.put(new Zi("bb",2), "b");
hm.put(new Zi("cc",3), "c");
hm.put(new Zi("aa",1), "d");
Set<Zi> zi = hm.keySet();
Iterator<Zi>it =zi.iterator();
while(it.hasNext()){
Zi str = it.next();
System.out.println(str.getAge()+"---"+str.getName()+"---"+hm.get(str));
//这里打印
//1---aa---a
//3---cc---c
//1---aa---d
//2---bb---b
//这里key的值相同没有覆盖,因为没有重写equals方法,他是根据object的equals方法进行地址的判断。不同对象地址不一样他认为key不一样。
}
HashMap<Integer, String> hm1 = new HashMap<Integer, String>();
hm1.put(1, "a");
hm1.put(2, "b");
hm1.put(3, "c");
hm1.put(1, "d");
Set<Integer> in = hm1.keySet();
Iterator<Integer> ite = in.iterator();
while(ite.hasNext()){
Integer inte =ite.next();
System.out.println(inte+"---"+hm1.get(inte));
//这里打印
//1---d
//2---b
//3---c
//这里重复key对应的value被覆盖了,因为inteage 类重写了equals方法 ,是按照值进行判断。值相同,key相同。所以覆盖了value
}
}
}
---------------------- android培训 、java培训 、期待与您交流! ----------------------