Java之Map接口和泛型

一、Map接口

Map是接口,与Collectiom是并列的关系

public static void main(String[] args) {
    //创建集合对象,并存放元素信息
    Map countries=new HashMap();
    countries.put("chaina","中国");
    countries.put("chaina1","中国1");
    countries.put("chaina2","中国2");
    countries.put("chaina3","中国3");
    //获取集合中的元素个数(键值对的对数)
    System.out.println(countries.size());
    //获取集合中特定元素,返回的是Object类型,需要进行类型转向
    String country= (String) countries.get("chaina");
    System.out.println(country);




}

在这里插入图片描述
Map常用方法
在这里插入图片描述

//判断集合中是否存在某一个国家,是一个布尔类型
countries.containsKey("chaina");
System.out.println(countries.containsKey("chaina"));


//删除某个特定key的键值对
countries.remove("chaina");
System.out.println(countries.containsKey("chaina"));


//获取键的集合、值的集合、键值对的集合
System.out.println(countries.keySet());
System.out.println(countries.values());
System.out.println(countries);

二、遍历Map

方法一:增强for

//方法一:增强for
Set keys=countries.keySet();
for (Object obj:keys){
    String key= (String) obj;//遍历key
    String value= (String) countries.get(key);//通过key访问每一个值
    System.out.println(key+" "+value);


}

方法二:迭代器Iterator

//方法一:使用迭代器Iterator迭代器
Iterator itor=keys.iterator();
while (itor.hasNext()){
    //获取到的每一个key
    String key= (String) itor.next();//遍历key
    String value= (String) countries.get(key);//通过key访问每一个值
    System.out.println(key+" "+value);
}

方法三:遍历key-value

//方法二:获取Map中的所有键值对,然后分别去kry和value
Set set=countries.entrySet();
//遍历键值对的集合,Map.Entry的类型的键值对
for (Object obj:set){
    Map.Entry me= (Map.Entry) obj;
    me.getKey();//获取键值对中的key
    me.getValue();//获取键值对中的value
    System.out.println(me.getKey()+" "+me.getValue());
}

在这里插入图片描述

三、泛型

将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性

泛型约束了集合框架添加元素的安全性,错误的元素类型添加会编译报错

在这里插入图片描述
map需要添加两个约束
在这里插入图片描述
这个需要从内往外看
在这里插入图片描述

四、Collections

在这里插入图片描述
排序
在这里插入图片描述

public int compareTo(Object o) {    if (this.no==((person) o).no){        return 0;    }else if (this.no>((person) o).no){        return 1;    }else {        return -1;    }}

Collections.sort(person);
for (Object obj:person){
    person person1= (preview.person) obj;
    System.out.println(person1.no);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值