java集合 HashMap的三种遍历方式

在这里插入图片描述

前言:

HashMap的集合中的比重是无可厚非的,由自身的数组+链表/红黑树构成的(JDK 1.8),这样使得HashMap优点表现出来:

  • 数组查询效率快;
  • 链表的插入和删除效率也加快

但是HashMap是Map家族下的主心骨(键值对形式),其中没有迭代器之说;
所以,这里我们简单谈谈hashMap的遍历方式。

package com.atguigu.map;

import org.junit.Test;

import java.util.*;

public class TestHashMap1 {
    //1.探寻HashMap的变化:



    @Test
    public void Test01(){

      Map hashMap = new HashMap();
        hashMap.put(1,"yuanwei");
        hashMap.put(2,"yuyi");
        hashMap.put(3,"web");
        //map的遍历方法:
          //map是个接口和collection是两个家族的:属于映射关系那种的表现:,没有遍历的方法:因为这个方法是在collection接口中的
//        iterator的迭代器方法;





        //map的遍历方法一、
           /*keySet的方法:表示获取所有的key;  --->key不会重复--所以可以是单独的set集合--->属于这个Collection的
           可以使用的是迭代器-以及foreach:
           for(对象的类型 单个对象的名字:遍历的集合)
*/




        Set set = hashMap.keySet();
          //遍历的增强for循环:
        for (Object map:set
             ) {
            //遍历的单一的map每个对象
            System.out.println(map);
             //将这个hashmap中get(value)--->key -value的方法
            System.out.println(map +"-->"+hashMap.get(map));//通过key-->value

        }

        //或者是直接遍历的:()
          System.out.println("单个key的遍历");
           set.forEach(System.out::println);

        //遍历方式二:直接遍历出的values();:
        System.out.println("直接将这个value变成集合的形式输出--因为是collection所以可以用for循环");
        Collection values = hashMap.values();
         values.forEach(System.out::println);

       //遍历的方式三: entrySet()
    // 根据映射关系直接输出的Entry的一个实体(key,value)--其中的这个key-value的值都是可以直接上手的-可以是任何对象;

        Set entrySet = hashMap.entrySet();
        for (Object  entry:entrySet
             ) {
            //注意:这里输出的都是单一的对象,不是集合
            System.out.println(entry);

           /* 1=yuanwei
            2=袁玮
            3=马伟博
*/
        }

    }







     //表示的是一个arraylist的是一个可以迭代的方法;
     @Test
     public void testArrayList(){

       List<String> arrayList1 = new ArrayList();
          arrayList1.add("2");
          arrayList1.add("2");
          arrayList1.add("2");
          arrayList1.add("2");
         arrayList1.forEach(System.out::println);



     }


}

输出的Console

1
1-->yuanwei
2
2-->yuyi
3
3-->web
1
2
3
直接将这个value变成集合的形式输出--因为是collection所以可以用循环
yuanwei
yuyi
web
1=yuanwei
2=yuyi
3=web
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值