含泪学java之集合遍历(ArrayList Map HashSet)

集合:

任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。 

任何对象没有使用泛型之前会自动转换Object类型,使用泛型之后不用强制转换

集合的遍历:  集合中对象按照索引位置排序,可以有重复的对象。 可以按照顺序取,也可以指定取。

遍历ArrayList:

import java.util.*;




public class ArrayListTest{

public static void main(String[] args) {

     List<String> list=new ArrayList<String>();

     list.add("Hello");

     list.add("Java");

     list.add("ArrayList");

     //方法一:使用for或foreach遍历

     for (String str : list) {  

        System.out.println(str);

     }




     //方法二:将集合转化为数组,然后进行for或foreach遍历

     String[] strArray=new String[list.size()];

     list.toArray(strArray);

     for(int i=0;i<strArray.length;i++)

     {

        System.out.println(strArray[i]);

     }




    //方法三:使用迭代器器

     Iterator<String> iterator=list.iterator();

     while(iterator.hasNext())//判断下一个元素之后有值

     {

         System.out.println(iterator.next());

     }

}

}

遍历Map: 集合中的每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复。 

数据结构 键值对

import java.util.*;




public class MapTest {

    public static void main(String[] args) {

        Map<String, String> map = new HashMap<String, String>();

        map.put("1", "Hello");

        map.put("2", "Java");

        map.put("3", "Map");




        //方法一:先通过Map.keySet遍历key,再通过key获取value值

        for (String key : map.keySet()) {

            System.out.println("key= "+ key + " and value= " + map.get(key));

        }




        //方法二:通过Map.entrySet使用iterator遍历键值对对象,再通过getKey()和getValue()获取key和value的值

        Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();

        while (it.hasNext()) {

            Map.Entry<String, String> entry = it.next();

            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

        }




        //方法三:通过Map.entrySet遍历key和value

        for (Map.Entry<String, String> entry : map.entrySet()) {

            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

        }




        //方法四:通过Map.values()遍历所有的value,但不能遍历key

        for (String value : map.values()) {

            System.out.println("value= " + value);

        }

    }

}

遍历Set:集合中的对象不按特定的方式排序,并且没有重复对象;对象是没有顺序的,集合是没有顺序的



import java.util.HashSet;

import java.util.Iterator;




public class SetTest {

    public static void main(String[] args) {

        HashSet<String> sets = new HashSet<>();

        sets.add("h");

        sets.add("e");

        sets.add("l");

        sets.add("l");//不可重复

        sets.add("0");




        //方法一:迭代遍历

        for (Iterator<String> iterator = sets.iterator(); iterator.hasNext();){

            System.out.println(iterator.next());

        }

        //输出结果:

        /*

        0

        e

        h

        l

         */

       //可以看出Set集合是不可重复(添加重复操作不会报错)且无序的




        //方法二:foreach循环(没有普通for循环方法)

        for (String value:sets) {

            System.out.println(value);

        }

    }

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值