2025年map集合常见的几种遍历方式(超详细)

map集合常见的几种遍历方式(超详细)关于 map 集合的遍历 还是有很多方式的 接下来就由我为大家 演示一下爱比较常用的关于 map 集合的遍历方式 第一种遍历方式键找值 先获取 map 集合全部的键 在通过遍历键 来找值 public static void main String args

大家好,我是讯享网,很高兴认识大家。

关于map集合的遍历,还是有很多方式的,接下来就由我为大家,演示一下爱比较常用的关于map集合的遍历方式。


讯享网

第一种遍历方式--键找值:
先获取map集合全部的键,在通过遍历键,来找值。 

 

 

 public static void main(String[] args) { //第一种遍历方式 键找值 Map<String,Integer> map = new HashMap<>(); map.put("huawei",7999); map.put("java入门课程",29); map.put("redmi",1999); map.put("oppo",3999); map.put("vivi",899); System.out.println(map); // 获取所有的key Set<String> keys = map.keySet(); Collection<Integer> values = map.values(); for (String key : keys) { Integer value = map.get(key); System.out.println(key +" ===> " + value); } } / * {huawei=7999, vivi=899, oppo=3999, redmi=1999, java入门课程=29} * huawei ===> 7999 * vivi ===> 899 * oppo ===> 3999 * redmi ===> 1999 * java入门课程 ===> 29 */

讯享网
这种方式遍历map集合的缺点就是,使用增强for循环遍历的时候,无法直接确定元素类型。

for(元素类型  keys: map){

        ...

}

第二种方式--键值对:

讯享网 public static void main(String[] args) { //第一种遍历方式 键值对 Map<String,Integer> map = new HashMap<>(); map.put("huawei",7999); map.put("java入门课程",29); map.put("redmi",1999); map.put("oppo",3999); map.put("vivi",899); System.out.println(map); Set<Map.Entry<String, Integer>> entries = map.entrySet(); for (Map.Entry<String, Integer> entry : entries) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key+" ===> "+value); } } / * {huawei=7999, vivi=899, oppo=3999, redmi=1999, java入门课程=29} * huawei ===> 7999 * vivi ===> 899 * oppo ===> 3999 * redmi ===> 1999 * java入门课程 ===> 29 */
第三种方式:Lamdba表达式:

这是jdk1.8开始之后的新技术(非常简单便捷)

 public static void main(String[] args) { //第一种遍历方式 lambda表达式遍历 Map<String,Integer> map = new HashMap<>(); map.put("huawei",7999); map.put("java入门课程",29); map.put("redmi",1999); map.put("oppo",3999); map.put("vivi",899); System.out.println(map); //匿名内部类 map.forEach(new BiConsumer<String, Integer>() { @Override public void accept(String key, Integer value) { System.out.println(key +" ===> "+ value); } }); } / * {huawei=7999, vivi=899, oppo=3999, redmi=1999, java入门课程=29} * huawei ===> 7999 * vivi ===> 899 * oppo ===> 3999 * redmi ===> 1999 * java入门课程 ===> 29 */
lamdba表达式简化写法1:
讯享网 public static void main(String[] args) { //第一种遍历方式 lambda表达式遍历 Map<String,Integer> map = new HashMap<>(); map.put("huawei",7999); map.put("java入门课程",29); map.put("redmi",1999); map.put("oppo",3999); map.put("vivi",899); System.out.println(map); //简化写法lamdba表达式 map.forEach((String key, Integer value) -> { System.out.println(key +" ===> "+ value); }); } / * huawei ===> 7999 * vivi ===> 899 * oppo ===> 3999 * redmi ===> 1999 * java入门课程 ===> 29 */
lamdba表达式简化写法2:
 public static void main(String[] args) { //第一种遍历方式 lambda表达式遍历 Map<String,Integer> map = new HashMap<>(); map.put("huawei",7999); map.put("java入门课程",29); map.put("redmi",1999); map.put("oppo",3999); map.put("vivi",899); System.out.println(map); map.forEach((key,value) -> System.out.println(key +" ===> "+ value)); } / * huawei ===> 7999 * vivi ===> 899 * oppo ===> 3999 * redmi ===> 1999 * java入门课程 ===> 29 */ 
第五种遍历方式--stream流:
讯享网 public static void main(String[] args) { //第四种遍历方式 stream流 Map<String,Integer> map = new HashMap<>(); map.put("huawei",7999); map.put("java入门课程",29); map.put("redmi",1999); map.put("oppo",3999); map.put("vivi",899); System.out.println(map); System.out.println("------------------"); map.entrySet().stream().forEach(e -> System.out.println(e)); } / * huawei=7999 * vivi=899 * oppo=3999 * redmi=1999 * java入门课程=29 */

小讯
上一篇 2025-03-08 12:34
下一篇 2025-01-12 09:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/26936.html