首页 > 学院 > 开发设计 > 正文

集合框架Map概述和特点,Map集合的基本功能,Map集合的遍历,HashMap集合,

2019-11-10 20:10:06
字体:
来源:转载
供稿:网友

java 18

Map集合和Collection集合的区别:

1.Map集合存储元素是成对出现的,Map集合有一个键和值,键是唯一的,但是值是可以重复的。 2.Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素是可以重复的。


Map接口功能概述

A:添加功能 B:删除功能 C:判断功能 D:获取功能 E:长度功能

接下来我们用一段代码来演示:

public class MapDemo1 { public static void main(String[] args) { //创建map集合 Map<String,String> m = new HashMap<String,String>(); //添加元素 m.put("小米","大米"); m.put("小王","大王"); m.put("小明","大明"); //删除功能 //System.out.PRintln("remove"+m.remove("小米")); //判断功能 System.out.println("containKey:"+m.containsKey("小王")); System.out.println("containKey:"+m.containsKey("小黑")); //判断集合是否为空 System.out.println("isEmpty:"+m.isEmpty()); //长度功能 System.out.println("size:"+m.size()); //获取键值 System.out.println("获取键值:"+m.get("小王"));

我们运行得到的结果如下:

containKey:true containKey:false isEmpty:false size:3 获取键值:大王

Map 获取所有键的集合

我们在后面添加如下代码:

Set<String> s = m.keySet();//获取键的集合 for (String key : s){ System.out.println(key); }

输出结果:

小明 小王 小米

我们根据输出的结果发现,Map集合的顺序和代码内容是不一样的,由此可得,Map集合是无序的。

Map获取所有值的集合

我们添加如下代码

Collection<String> collection = m.values(); //Map获取所有值的集合 for (String valuse : collection){ System.out.println(valuse); }

输出结果:

大明 大王 大米

那么我们使用了这两种方法遍历之后,我们改怎么样去根据键去找值呢? 添加如下代码:

Set<String> se = m.keySet(); for (String key:se){ String valus = m.get(key); System.out.println(key+"--"+valus); }

输出结果:

小明–大明 小王–大王 小米–大米

但是呢上面都不是集合的遍历,都只是值和键之间的遍历,接下来来看一种Map集合的遍历。

Map集合的遍历

第一种方法:

键找值 a:获取所有键的集合 b:遍历键的集合,得到每一个键 c:根据键到集合中去找值

首先我们创建一个集合对象,并添加元素

// Set<Map.Entry<K,V>> entrySet()public class MapDemo3 { public static void main(String[] args) { // TODO 自动生成的方法存根 //创建集合对象 Map<String, String> map = new HashMap<String, String>(); //创建元素 添加到集合 map.put("key1","value1"); map.put("key2","value2"); map.put("key3","value3"); map.put("key4","value4");

遍历的第一种方式:

键值对对象找键和值 a:获取所有的键值对对象的集合 b:遍历键值对对象的集合,获取每一个键值对对象 c:根据键值对对象去获取键和值

//遍历一 Set<Map.Entry<String, String>> set = map.entrySet(); for (Entry<String, String> entry : set) { String key = entry.getKey(); String value = entry.getValue(); System.out.println(key+"-----"+value); }

得到的结果如下:

key1—–value1 key2—–value2 key3—–value3 key4—–value4

这样我们就成功的遍历出了Map集合

但是我们还有一种遍历集合的方式:

//遍历方式二 System.out.println("遍历方式二"); Set<String> set2 = map.keySet(); for (String key : set2){ String value = map.get(key); System.out.println(key+"----"+value);

结果如下:

遍历方式二 key1—-value1 key2—-value2 key3—-value3 key4—-value4

HashMap集合

HashMap类:键是哈希表结构,可以保证键的唯一性

public static void main(String[] args) { // TODO 自动生成的方法存根 // 创建学生对象 HashMap<String, Student> hashMap = new HashMap<String, Student>(); // 创建学生对象 Student s1 = new Student("小明", 11); Student s2 = new Student("小王", 21); Student s3 = new Student("小黑", 33); // 添加学生元素 hashMap.put("1", s1); hashMap.put("2", s3); hashMap.put("3", s2); // 遍历 Set<String> set5 = hashMap.keySet(); for (String key : set5) { Student v = hashMap.get(key); System.out.println(key + "-----" + v.getAge() + v.getName()); } }}

输出结果如下:

1—–11小明 2—–33小黑 3—–21小王


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表