Map集合框架

目录

        Map集合特点

        Map集合遍历方式

       常用实现类HashMap

       泛型

       集合框架工具类


思维导图:

Map集合特点

①:元素以键值对的形式存在

②:其中key值可以为空

Map集合遍历方式

 Map集合是以键值对形式存在,遍历方式也与list和set有差异,一种是通过获取map集合中所有的key来遍历其中的value;一种是通过map集合的映射关系来遍历。

 Map<String, Integer> map=new HashMap<>();
		map.put("a", 1);
		map.put("b", 2);
		map.put("c", 3);
		
		//先获取map集合中所有的key
		Set<String> keys=map.keySet();
		for (String key : keys) {
			System.out.println("key:"+key+" value="+map.get(key));
		}
		//先获取map集合的映射关系
		Set<Entry<String,Integer>> entrySet = map.entrySet();
		for (Entry<String, Integer> entry : entrySet) {
			System.out.println("key:"+entry.getKey()+" value="+entry.getValue());

输出的结果也是相同的:

常用实现类HashMap

  以统计字符串各文字出现的次数为例子,hashmap适用于对集合内的数据进行计算与统计。

 思路:

 1.字符串转换为字符数组

 2.遍历数组,将字符放入map集合中的key

 3.判断:如果字符没有,那么就给字符对应的值设置为1;如果有,就给对应字符的值加1


public class Demo3 {

	public static void main(String[] args) {
		
		String s="dafdawrqerqweqweqwewqewqeweuyuyrtnvxvhjljluupppqpomznbcgfryv";
		
		char[] chars = s.toCharArray();
		HashMap<Character, Integer> map = new HashMap<Character, Integer>();
	    for (char c : chars) {
			Integer num=map.get(c);
			if(num == null || num == 0) {
				map.put(c, 1);
				
			}else {
				map.put(c, num+1);
			}
		}
	    Set<Entry<Character, Integer>> entrySet = map.entrySet();
	for (Entry<Character, Integer> entry : entrySet) {
		System.out.println(entry.getKey()+"出现了"+entry.getValue()+"次");
	}
  }
}

 输出:

        

 

泛型

作用:将运行时产生的异常转换为编译期的错误。

其实就是当我们没有将数据类型固定时,在我编写代码的时候就不会报错,只有在运行代码的时候才会报错。而使用泛型后在我们编译时就会报错,提高了我们敲代码的效率。

 

泛型类泛型方法原理也与泛型的使用大同小异。

集合框架工具类

首先就是collection的排序,是有comparator提供的方法,与与自然排序相同。

 

 List<User> list = new ArrayList<>();
    list.add(new User("zl",18000));
    list.add(new User("ww",8000));
    list.add(new User("ls",12000));
    list.add(new User("zs",13000));
		//排序
		Collections.sort(list, new Comparator<User>() {
			@Override
			public int compare(User arg0, User arg1) {
				// TODO Auto-generated method stub
				return arg0.getMoney()-arg1.getMoney();
			}
		});
		
		for (Object objsct : list) {
			System.out.println(objsct);
		}

输出:

 

toArray可以用list集合点出来,将list集合转化为collection数组。

Arrays中有toString,asList,sort方法。

toString

String[] arr=new String[] { "a","b","c","d","e"};
		System.out.println(Arrays.toString(arr));

输出:

【a,b,c,d,e】

运用tostring可以输出数组内的元素;

asList

将数组变成集合来操作,不能违背数组本身特点。
 


List<String> asList = Arrays.asList(arr);
		//asList.add("3");

 

Sort

	Integer[] ar=new Integer[] {1,8,7,6,9 };
		Arrays.sort(ar);
     	System.out.println(Arrays.toString(ar));

输出:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值