侧边栏壁纸
博主头像
清如许博主等级

努力成长为一颗大树,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找

  • 累计撰写 80 篇文章
  • 累计创建 44 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

java中的集合框架(Set、List、Map)及其实现类.md

清如许
2022-06-10 / 0 评论 / 0 点赞 / 38 阅读 / 674 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-06-10,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

-"+value); //获取所有的key
}

2值遍历 只能够获取到值(value)
获取所有的value 存放在集合中

Collection values = map.values();

遍历集合

		for(String value:values){
			System.out.println(value);
		}

键值对遍历 能够获取到键和值
将key和value 封装成一个对象Map.Entry,把封装的对象存放在集合里面
entrySet() :能够获取 键值对对象 存放的集合

Set<Map.Entry<Integer, String>> set = map.entrySet();

遍历集合 获取对应键和值

    for(Map.Entry<Integer, String> entry:set){
    			Integer key = entry.getKey();
    			String value = entry.getValue();
    			System.out.println(key+"---"+value);
    		}

Map的常用方法示例:

package test;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class testMap {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<String, Integer> map = new HashMap<String, Integer>();
		//增
		map.put("a", 1);
		map.put("b", 2);
		map.put("c", 3);
		map.put("d", 4);
		map.put("e", 5);
		
		//查
		System.out.println(map.get("c"));
		//改
		map.put("c", 33);
		System.out.println(map.get("c"));
		//删
		map.remove("d");
		//遍历
		System.out.println(map);
		//查找map中是否包含指定的key
		System.out.println(map.containsKey("e"));
		//查找map中是否包含指定的value
		map.containsValue("5");
		//长度
		System.out.println(map.size());
		System.out.println();
		//遍历key
		System.out.println("遍历key");
		Set<String> set = map.keySet();
		for (String string : set) {
			Integer val = map.get(string);
			System.out.print(string+"\t"+val+"\n");
		}
		System.out.println();
		
		//遍历value
		System.out.println("遍历value:");
		Collection<Integer> values = map.values();
		for (Integer integer : values) {
			System.out.print(integer+"\t");
		}
		System.out.println();
		System.out.println("遍历键值对:");
		Set<Entry<String,Integer>> set2 = map.entrySet();
		for (Entry<String, Integer> entry : set2) {		
			System.out.println(entry);
		}	
	}
}

通过上面程序可以看到,元素的key值是可以进行排序的,可以通过TreeMap进行排序,和TreeSet的排序类似。就不多介绍了。
Map实现类 之间的区别、

HashMap JDk1.2 线程不安全 轻量级实现 运行效率高 允许key和value为null值
自定义的类型作为key时,必须重写hashCode和equals方法

LinkedHashMap JDK1.2
自定义的类型作为key时,必须重写hashCode和equals方法
保证遍历的顺序跟添加的顺序一致

TreeMap JDK1.2
保证遍历的顺序为key升序排列后的结果
自定义的类型作为key时,需要实现Comparable接口,以及实现compareTo方法

Propertis jdK 1.0
键和值都必须是String类型,通过用来读取配置文件时

HashTable jdK 1.0 线程安全 重量级实现 运行效率低 不允许key和value为null

0

评论区