JAVA基础之map集合

Map接口

Map的特点:
(1)存储的数据是键值对
(2)键不能重复
(4)无序的

实例map集合
Map<String,String> map=new HashMap<>();

		//1添加元素
		   map.put("cn", "中国");
		  map.put("uk","英国");
		  //2删除
		  map.remove("uk")
		  map.clear();
		  //3遍历
		//3.1使用keySet遍历
		System.out.println("---------keySet()----------");
		Set<String> keySet = map.keySet();
		for (String key : keySet) {
			System.out.println(key+"..........."+map.get(key));
		}
		//3.2使用entrySet();
		System.out.println("---------entrySet()---------");
		Set<Entry<String, String>> entrySet = map.entrySet();//Entry(映射对)
		for (Entry<String, String> entry : entrySet) {
			System.out.println(entry.getKey()+"...."+entry.getValue());
		}
//4判断
		//4.1isEmpty
		System.out.println("判断isEmpty():"+map.isEmpty());
		
		//4.2判断是否包含指定的key
		System.out.println("cn:"+map.containsKey("cn"));
		//4.3判断是否包含指定的value
		System.out.println("韩国:"+map.containsValue("韩国"));

Map常用实现类

HashMap

存储特点:
相对无序存储,元素以键值对形式存在,键不可以重复,值可以重复,元素整体排重,可以快速的通过键查找到所对应的值,通过哈希表实现的集合。

HashMap集合的排重,只需要重写键所属的类的hashCode和equals方法即可。

map集合中若向集合中添加相同键的键值对时,新的值会将旧的值覆盖

LinkedHashMap
LinkedHashMap集合是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。用法与HashSet类似。
存储特点:
有序存储,元素排重,通过链表实现的集合。

TreeMap

存储结构:自平衡红黑二叉树

特点:
1 存储键值对、键不能重复、一个键对应一个值、值可以重复
2 无序,数据会进行排序。

排重依据:Comparable接口的compareTo()方法的返回值。如果返回0就认为是重复的元素。

TreeMap<Person, String> treeMap=new TreeMap<>(new Comparator<Person>() {

			@Override
			public int compare(Person o1, Person o2) {
				int n=o1.getAge()-o2.getAge();
				int n2=o1.getName().compareTo(o2.getName());
				return n==0?n2:n;
				
			}
		});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值