Map集合

在这里插入图片描述

一.Map集合的特点

1.Map集合是以键值对的方式来储存数据的
key(键)------value(值)
2.key是唯一的,一个键只能对应一个值,(如果已经存在该键再添加只会覆盖上一次的值)
但是一个值可以对应多个键。(key可以为null)
3.Map集合里面可以存储两种或者两种以上的数据类型

package com.mjx.set;

import java.util.HashMap;
import java.util.Map;

public class Text1 {
	public static void main(String[] args) {
		Map<String, Object> map = new HashMap<String, Object>();
		//增加
		//论证了观点3中添加三个不同数据类型到map中
		map.put("a", 1);
		map.put("b", "s");
		map.put("c", new Student("小明",18,"男"));
		//修改
		//论证了观点2中的key的唯一性以及key可以为空
		map.put("c", new Student("小强",19,"男"));
		map.put(null, 2);
		//删除
		map.remove("a");
		//查询
		//论证了观点1,Map是以键值对的方式储存数据的
		map.get("b");
	}
}

二.Map集合的遍历方式

1.EntrySet
把键值对当成一个对象存入set集合当中

//Entry遍历方式
		Set<String> keySet = map.keySet();
		System.out.println("--------------entrySet()方法---------------");
		Set<Entry<String, Object>> entrySet = map.entrySet();
		for (Entry<String, Object> e : entrySet) {
			System.out.println(e);
		}

2.KeySet
将Map集合中所有的key(键)都存入Set集合当中
然后遍历这个集合
用Map集合中Map.get(key)得到键所对应的值

	Set<String> keySet = map.keySet();
		System.out.println("--------------------------keySet的forech便利方式--------------------------------");
		for (String key : keySet) {
			System.out.println("键为" + key + "---------值为" + map.get(key));
		}

运行结果

在这里插入图片描述

三HashMap

实例,算出下列字符串各个字母出现的次数、
1.先将字符串转化为char数组
2.便利char数组。
3判断map集合中的键是否包含char中的值,
如果没有就添加进去如果有就修改对应的值

package com.mjx.set;

import java.util.HashMap;
import java.util.Map;

public class Text3 {
	public static void main(String[] args) {
		Map<Character, Integer> map = new HashMap<Character, Integer>();
		String s = "ssasdmnfblkafliwqeufklsandfndsafkas";
		char[] ch = s.toCharArray();
		for (char c : ch) {
			if (map.get(c) == null) {
				map.put(c, 1);
			} else {
				map.put(c, map.get(c) + 1);
			}
		}
		System.out.println(map);
	}
}

运行结果
在这里插入图片描述

四.泛型

泛型即为在生成一个map集合的时候为它指定类型
把运行产生的异常转换为编译的异常
例子

	Map<String, Object> map = new HashMap<String, Object>();
		map.put("a", 1);
		map.put("b", "s");
		map.put("c", new Student("小明", 18, "男"));
		int s=(int)map.get("a");//这一行不会报错应为a原本就是int类型
		int m=(int)map.get("c");//这一行就会报错无法将studednt转化为int类型

但在编译的时候不会报错,所以要指定泛型

五.集合框架工具类

Collections
排序
//根据年龄升序

package com.mjx.set;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Text4 {
	public static void main(String[] args) {
		List<Student> s = new ArrayList<Student>();
		s.add(new Student("zm", 19, "女"));
		s.add(new Student("xh", 17, "女"));
		s.add(new Student("xf", 21, "男"));
		s.add(new Student("xq", 13, "男"));
		Collections.sort(s, new Comparator<Student>() {
			@Override
			public int compare(Student o1, Student o2) {
				// TODO Auto-generated method stub
				return o1.getAge() - o2.getAge();
			}
		});
		for (Student s1 : s) {
			System.out.println(s1);
		}
	}
}

运行结果
在这里插入图片描述

Arrays

String[] arr=new String[] {"a","b","c","d","e","f"};
		System.out.println(Arrays.toString(arr));
List<String> asList = Arrays.asList(arr);
		System.out.println(asList);
		//冒泡排序
		Integer[] ar = new Integer[] {1,7,3,6,5,4,2,8};
		Arrays.sort(ar);
		System.out.println(Arrays.toString(ar));

結果
在这里插入图片描述
希望对你有所帮助

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值