Map、泛型

本文详细介绍了Java中的Map接口,包括其基本概念、常用方法以及HashMap、Properties和TreeMap的使用。Map用于存储键值对,HashMap是常用的实现类,提供了快速的存取操作。Properties类特别适用于存储配置信息,而TreeMap则按特定规则排序键值对。此外,文章还提及了泛型在Java中的应用,强调了类型检查和统一数据类型的重要性。
摘要由CSDN通过智能技术生成

1、Map

1.1 概述

Map保存键值对 K V
无序 key 不可重复 value 可重复
Map和Collection不一样,但基本操作是一样的

Map用来保存映射关系
比如 商品,商品的名称,产地,单价等属性,都是商品的属性,但是购买的数量,就不是商品的属性,放到商品类中也不合适
那么如何保存这个商品 购买的数量呢? 使用map,用商品作为key,购买数量作为value即可
或者统计操作,有一个字符串"asaaafergergdsff”, 需求是 统计每一个字符出现的个数,字符作为key,次数作为value

1.2 常用方法

在这里插入图片描述

1.3 HashMap

HashMap map=new HashMap();
map.put(“a”,3); //添加修改
map.size();//长度
map.containKey();是否包含某个key
map.containValue();是否包含某个value
map.get();//根据key获取value
map.remove();//根据key删除对应的键值对,并且返回值是对应的value

1.4HashMap遍历
1.获取所有value,返回一个collection
Collection values=map.values();
for(Object obj:values){
System.out.println(obj);
}
2.keySet:获取所有的key,返回Set
Set keys=map.keySet();
for(Object key:keys){
//获取value
Object value=map.get(key);
System.out.println(key+":"+value);
}
3.entrySet:entry对象中可以存储key和value,我们只需保存entry就等于把kv都存储了(把map中的kv封装到entry对象中,并以set方式返回)
Set entrys = map.entrySet();
for(Object obj:entrys){
Entry entry=(Entry)object;
System.out.println(entry.getKey()+":"+entry.getValue);
}

1.4 Properties

Properties 一个特殊的map,键和值 比较都是字符串
Properties p=new Properties();
//添加数据
p.setProperty(“username”,“admin”);
p.setProperty(“password”,“1234”);
//获取数据
String username=p.getProperty(“username”);
System.out.println(username);//admin
//第二个参数是默认值,如果根据key可以找到对应的value,就不使用默认值,找不到,就使用默认值
System.out.println(p.getProperty(“pass”,“root”));

1.5 TrreMap

TreeMap 添加的元素必须按照某个规则进行排序
1.被添加的元素 实现 Comparable
2.单独提供一个Comparator比较器类
map.put();
map.size();
map.keySet();
map.entrySet();
map.containsKey("");
map.containsValue("");
map.remove("");

2.泛型

2.1概述

类型检查,在编译过程中检查类型是否匹配
泛型只能是引用类型,不能写基本类型
优点:统一了数据类型,减少了强制类型转换,使用方便
缺点:统一了数据类型,只能保存单一类型的数据

2.2 使用

只能添加integer类型
List ss=new ArrayList();
ss.add(2);
for(Integer integer:ss){
integer.intValue();
}

2.3 java泛型中标记符含义

E-Element(在集合中使用,因为集合中存放的是元素)
T-Type(java类)
K-Key(键)
V-Value(值)
N-Number(数值类型)
?-表示不确定的java类型
S、U、V -2nd、3rd、4th types

2.4 自定义类型
class MyClass{
public void m1(T o){
System.out.println(o);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值