Map的常用操作方法

叁歲伎倆 2024-04-01 17:06 171阅读 0赞

目录

map的操作方法

1.map.forEach((key,value)->{})

2.map.keySet()

3.map.values()

4.map.entrySet()

测试代码


map的操作方法

1.map.forEach((key,value)->{})

通过forEach循环处理可以得到每一条中的key和value,进而进行下一步处理

2.map.keySet()

通过keySet()方法可以得到map中所有key的集合,循环这个集合可以通过key取到value

3.map.values()

通过values()方法可以得到map中所有key对应value的集合,循环这个集合可以得到每个value的值

4.map.entrySet()

存放的是键值对的集合,可以通过循环得到key和value的值

5.测试代码

  1. package test.map;
  2. import test.strategy.inn2Impl;
  3. import test.strategy.innTest;
  4. import java.util.*;
  5. import java.util.stream.Collectors;
  6. /**
  7. * @author linaibo
  8. * @version 1.0
  9. * Create by 2022/8/21 13:33
  10. */
  11. public class mapTest {
  12. public static void main(String[] args) {
  13. List<student> list = new ArrayList<>();
  14. list.add(new student(1, "张三"));
  15. list.add(new student(1, "李四"));
  16. list.add(new student(3, "王五"));
  17. list.add(new student(3, "赵六"));
  18. list.add(new student(5, "小七"));
  19. Map<Integer, List<student>> map = list.stream().collect(Collectors.groupingBy(student::getId));
  20. map.forEach((key, value) -> {
  21. System.out.println(key);
  22. value.forEach(val -> {
  23. System.out.print(val.getId());
  24. System.out.println(val.getName());
  25. });
  26. });
  27. System.out.println("------------------");
  28. Set<Map.Entry<Integer, List<student>>> maoo = map.entrySet();
  29. maoo.forEach(item -> {
  30. System.out.println(item.getKey());
  31. System.out.println(item.getValue());
  32. });
  33. Set<Integer> set = map.keySet();
  34. set.forEach(s -> {
  35. System.out.println(s);
  36. });
  37. System.out.println("----------");
  38. Collection<List<student>> values = map.values();
  39. System.out.println("********");
  40. System.out.println(values);
  41. values.forEach(item->{
  42. item.forEach(i->{
  43. System.out.println(i.getId());
  44. System.out.println(i.getName());
  45. });
  46. });
  47. System.out.println("=========");
  48. innTest test = new inn2Impl();
  49. test.run();
  50. }
  51. public static class student {
  52. private int id;
  53. private String name;
  54. public student(int id, String name) {
  55. this.id = id;
  56. this.name = name;
  57. }
  58. public int getId() {
  59. return id;
  60. }
  61. public void setId(int id) {
  62. this.id = id;
  63. }
  64. public String getName() {
  65. return name;
  66. }
  67. public void setName(String name) {
  68. this.name = name;
  69. }
  70. }
  71. }

6.注意事项

以上遍历方式的优劣,在阿里巴巴开发手册中这样写道:

7722069381b24d6480f2ef92161122f1.png

所以在开发中,可以使用entrySet方式及java8的forEach方式进行遍历。

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读