Java"集合"基本数据类型遍历练习

Java 同时被 2 个专栏收录
15 篇文章 0 订阅
3 篇文章 0 订阅

集合遍历

1.ArrayList五种遍历方式

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
/**
 * 通过add方法向元素中添加数据
 * 并将指定位置的索引进行打印
 * 以及对分数进行遍历
 */
public class TestArrayList {
    public static void main(String[] args) {
        ArrayList array=new ArrayList();
        //jdk1.5之前   add()方法里面是不可以直接添加基本数据类型的
        //jdk1.5之后   采取了自动装箱和自动拆箱功能,可以直接添加基本数据类型,转化的步骤是编译器为我们做的
        array.add(18);
        array.add(3);
        array.add(36);
        array.add(48);
        array.add(88);
        //获取指定位置的分数
        System.out.println(array.get(3));
        //通过引用数据类型的创建方式     jdk1.5之前可以这样做
        array.add(new Integer(99));

        //第一种循环方式:通过for循环遍历输出元素
        System.out.println("for========================");
        for (int i=0;i<array.size();i++){
            System.out.println(i+"    "+array.get(i));
        }

        //第二种循环方式:通过for-each循环遍历输出元素
        System.out.println("for-each========================");
        for (Object list:array) {
            System.out.println(list);
        }

        //第三种循环方式:通过while循环遍历输出元素
        System.out.println("while========================");
        //定义一个计数器
        int count=0;
        while(count<array.size()){
            System.out.println(array.get(count));
            count++;
        }

第四种循环方式:使用迭代器的方式进行循环遍历
  ArrayList 内部具有一个Itr内部类,而该类实现了Iterator接口,也就拥有了Iterator接口中的方法。 hasNext()判断是否有下一个元素;next()返回要访问的下一个元素 ;remove()通过迭代器删除元素中的数据。

        //第四种循环方式:使用迭代器的方式进行循环遍历
      
        System.out.println("Iterator========================");
        Iterator it=array.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

第五种方式:ListIterator类
  如果使用ListIterator这种方式进行遍历,切记倒序遍历之前,一定要跟在正序遍历之后,否则倒序遍历不出现结果。且正序遍历和倒序遍历共用同一个ListIterator对象。

       //第五种循环方式:ListIterator类
        System.out.println("ListIterator类正序排序========================");
        ListIterator listIterator=array.listIterator();
        while (listIterator.hasNext()){
            System.out.println(listIterator.next());
        }

        //第五中排序方式:ListIterator类倒序排序
        System.out.println("ListIterator类倒序排序========================");
        while (listIterator.hasPrevious()){
            System.out.println(listIterator.previous());
        }

    }
}

2.set集合中三个实现类的遍历(hashSet、linkedHashSet、TreeSet)

import java.util.*;
/**
 *  使用对Set类进行   查询String类中的课目元素
 *  set完全继承了Collection类  没有进行其他补充   所以不能使用索引来进行查询
 *  set有两种循环方式    第一种for-each
 */
public class TestHashSet1 {
    public static void main(String[] args) {
        //唯一  无序   底层使用了哈希表
        Set<String> set=new HashSet<String>();
        //向集合中添加课目信息
        set.add("java");
        set.add("python");
        set.add("jsp");

        //唯一  有序   添加顺序 底层使用了哈希表和链表
        Set<String> set1=new LinkedHashSet<String>();
 		//按照添加的顺序进行排序
        set1.add("ps");
        set1.add("android");
        set1.add("python");
        set1.add("javaScript");

        //唯一  有序   自然顺序 底层使用了红黑二叉树
        Set<String> set2=new TreeSet<String>();
        //按照自然顺序进行排序
        set2.add("ps");
        set2.add("android");
        set2.add("python");
        set2.add("javaScript");

       //第一种方式:
        System.out.println("for-each循环hashSet类中的数据==========================");
        for (String setList:set) {
            System.out.println(setList);
        }
        System.out.println("for-each循环LinkendHashSet类中的数据==========================");

        for (String setList1:set1) {
            System.out.println(setList1);
        }
        System.out.println("for-each循环TreeSet类中的数据==========================");

        for (String setList2:set2) {
            System.out.println(setList2);
        }

        System.out.println();

        // 第二种使用迭代器    iterator
        //创建迭代器对象
        Iterator<String> iterator=set.iterator();
        System.out.println("使用迭代器iterator循环遍历hashSet类中的数据===============");
        while (iterator.hasNext()){
            String em=iterator.next();
            System.out.println(em);
        }

        System.out.println("使用迭代器iterator循环遍历LinkendHashSet类中的数据===============");
        iterator=set1.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

        System.out.println("使用迭代器iterator循环遍历TreeSet类中的数据===============");
        iterator=set2.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}

3.map集合中三个实现类的遍历(hashMap、linkedHashMap、TreeMap)

import java.util.*;
/**
 * 国家简写个全称
 */
public class TestMap {
    public static void main(String[] args) {
        //创建map对象			唯一	无序
        HashMap<String,String> map=new HashMap<String,String>();
        //添加元素
        map.put("cn","China");
        map.put("us","the United States");
        map.put("jp","Japan");
        map.put("uk","the United Kingdom");
        map.put("us","America");
        map.put("en","the United Kingdom");

        System.out.println(map.size());  	//获取元素的个数
        System.out.println(map.get("us"));	//获取对应key键的value数据
        System.out.println(map.keySet());	//获取key键的集合
        System.out.println(map.values());	//获取value中的值信息

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

        //for循环遍历
        Set<String> keySet= map.keySet();
        for (String key:keySet) {
            System.out.println(key+"    "+map.get(key));
        }

        //iterator迭代器循环		通过entrySet()方法,返回一个Set集合
        Set<Map.Entry<String,String>> enntry=map.entrySet();
        //通过set集合调用迭代器			
        Iterator<Map.Entry<String, String>> integer=enntry.iterator();
        while (integer.hasNext()){
            Map.Entry<String,String> k=integer.next();
            System.out.println(k.getKey()+"--------"+k.getValue());
		}
		
    }
}

集合中的遍历练习总结,暂时到此结束。

谢谢您的观看,如有提议请在评论区留言。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

Y . . .

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值