栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

集合框架之Map

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

集合框架之Map

目录

一、map集合的特点

二、map集合的遍历方式

三、常用实现类HashMap

四、泛型

五、集合框架工具类


一、map集合的特点

1、增删改查

2、键值对形式存在

3、key可以为空

代码展示:

Map map=new HashMap<>();
		map.put("a", 1);
//		V put(K key, V value);
		map.put(null, null);
		map.put("b", 2);
		map.put("c", 3);
		map.put("d", 4);
		System.out.println(map);
		Object remove = map.remove("b");
		System.out.println(remove);
		System.out.println(map);
//		修改 也是调用put方法
		map.put("c", 32);
		System.out.println(map);
		
//		查询
		System.out.println(map.get("c"));

运行效果:

​

 结论:map集合的特点
         键值对
        遍历:
        拿到key,再拿值
        拿到映射关系,键值都有了

二、map集合的遍历方式

1、keySet

2、entrySet

 代码展示:

查询所有
//		1.先拿到map集合中的所有key
		Set keySet = map.keySet();
		for (Object key : keySet) {
			System.out.println("键:"+key+";值:"+map.get(key));
		}
		
//		2.拿到映射关系
		Set> entrySet = map.entrySet();
		for (Entry entry : entrySet) {
			System.out.println("键:"+entry.getKey()+";值:"+entry.getValue());
		}

运行效果:

 

 HashMap与hashtable的区别
  1.hashtable 是线程安全的
  2.jdk1.8以下hashtable的key不能存放null
 

三、常用实现类HashMap

代码展示:

 

​
package com.liaoxin.map;
 
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
 
public class Demo2 {
	public static void main(String[] args) {
		String s="ajfdshhssuhsklasowhskjdhiwsjhshwiklash";
		
		char[] arr=s.toCharArray();
		Map map=new TreeMap();
		for (char c : arr) {
			Integer value = map.get(c);
			if(value==null) {
				map.put(c, 1);
			}else {
				map.put(c, value+1);
			}
		}
		
		
		map.entrySet().stream().sorted((x,y)->x.getValue().compareTo(y.getValue())).forEach(System.out::println);
		
	}
}
 
​

运行效果:

 

 

四、泛型

1、作用

①将运行时产生的异常转换为编译期的错误

②提高代码的健壮性

2、泛型类(通用的增删改查)

3、泛型方法(通用结果集处理的思考)

代码展示:

package com.liaoxin.map;
 
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 

public class Demo3 {
	public static void main(String[] args) {
		Set set = new HashSet<>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		set.add(5);
		for (Object obj : set) {
			if(Integer.valueOf(obj.toString())%2==0) {
				System.out.println(obj);
			}
		}
	}
}
class BookDao{
//	add(Book book);
//	del(Book book);
//	edit(Book book);
//	list(Book book);
}
class UserDao extends BaseDao{
}
class BaseDao{
	void add(T t) {
		
	}
	void del(T t) {
		
	}
	void edit(T t) {
		
	}
	List list(T t){
		return null;
	}
}
class Result{
	 void del(T t) {
		
	}
}

运行效果:

 

 

 

五、集合框架工具类

1、Collections

①排序

②集合转数组:toArray

2、Arrays

①toString

②asList

③sort

代码展示:

package com.liaoxin.map;
 
import java.util.Arrays;
import java.util.List;
 

public class Demo4 {
	public static void main(String[] args) {
		String[] arr={"a","b","c","d"};
		List list = Arrays.asList(arr);
//		Object[] array = list.toArray();
		list.add("e");
//		java.lang.UnsupportedOperationException
		System.out.println(list.size());
	}
}

结论:数组转成集合,本质上依然是一个数组,长度是不可变的

集合与数组所具备的方法是不一样的,如对于数组而言,就没有判断内部包含哪个元素

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/962054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号