关于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 */


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