Map接口:
接口存储的对象唯一 有序(根据key和value)
存储一组键值对象 提供key和walue的映射(key和value唯一)
查找/添加 根据key进行操作
实现类:HashMap TreeMap
public class MapTest {
public static void main(String[] args) {
/*
map集和有序 唯一
*/
Map map=new HashMap();
//map添加数据:put(key,value) key,value都是object类型
//list和set添加数据:add()
map.put("CN","CHINA");
map.put("US","USA");
map.put(1,"UK");
//遍历map集和
//1.遍历所有的key---->key集和
Set set=map.keySet();//找到所有的key 返回的是一个set集和
for(Object object:set){
System.out.print(object+" ");//CN US 1 乱序的
}
System.out.println();
//2.所有的value集和---->value集和
Collection collection=map.values();//返回的是所有的值
for (Object object:collection){
System.out.print(object+" ");//CHINA USA UK 乱序的
}
System.out.println();
/*Set set1=(Set)map.values();//返回的是所有的值
for(Object object:set1){
System.out.println(object);//CN US 1 乱序的
}*/
//删除元素 根据key删除对应的value值
map.remove(1);
//查找指定的值 list:get() set:没有get()方法
//map: get(key)
Object object=map.get("CN");
System.out.println(object);//CHINA
}
}
泛型约束
list接口为例: 需求:集合当中添加一些数据 遍历集合 打印对象属性的值
//泛型约束 操作的数据只能是Student对象类型
List<Student> list=new ArrayList<Student>();
Student student=new Student();
student.sex= Genders.female;
list.add(student);
Student student2=new Student();
student2.sex= Genders.male;
list.add(student2);
for(Student stu:list){
System.out.print(stu.sex+" ");
}
System.out.println();
//set泛型约束
Set<String> set1=new HashSet();
set1.add("abc");
set1.add("abcd");
//添加整数 Set<Integer> set1=new HashSet();
//set1.add(1); 报错 类型不一致
for(String str:set1){
System.out.print(str+" ");
}
//迭代器遍历
Iterator<String> iterator=set1.iterator();
while(iterator.hasNext()){
String str= iterator.next();
System.out.println(str);
}
//Map泛型约束
Map<String,String> map1=new HashMap();
map1.put("CN","CHINA");
//map泛型约束 key和value的值可以不一样
Map<Integer,String> map2=new HashMap();
map2.put(1,"USA");