首页 > 其他分享 >数组和集合的增强for

数组和集合的增强for

时间:2022-12-06 14:14:23浏览次数:34  
标签:integers 增强 var4 list add 数组 Integer 集合 integer

数组的增强for

@Test
public void test1(){
    Integer[] integers =   new Integer[5];
    for(int i=0;i<integers.length;i++){
        integers[i] = i;
    }

    for (Integer integer : integers) {
        System.out.println(integer);
    }
}

输出

0
1
2
3
4

对应代码的.class

@Test
public void test1() {
    Integer[] integers = new Integer[5];

    for(int i = 0; i < integers.length; ++i) {
        integers[i] = i;
    }

    Integer[] var6 = integers;
    int var3 = integers.length;

    for(int var4 = 0; var4 < var3; ++var4) {
        Integer integer = var6[var4];
        System.out.println(integer);
    }

}

集合的增强for

@Test
public void test1(){
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(11);
    list.add(1111);
    list.add(11111);
    for (Integer integer : list) {
        System.out.println(integer);
    }
}

集合增强for的.class

@Test
public void test1() {
    ArrayList<Integer> list = new ArrayList();
    list.add(1);
    list.add(11);
    list.add(1111);
    list.add(11111);
    Iterator var2 = list.iterator();

    while(var2.hasNext()) {
        Integer integer = (Integer)var2.next();
        System.out.println(integer);
    }

}

结论:

集合的增强for底层使用迭代器

数组增强for的时候改变

@Test
public void test2(){
    Integer[] integers =   new Integer[5];
    for(int i=0;i<integers.length;i++){
        integers[i] = i;
    }

    for (Integer integer : integers) {
        if(integer==2){
            integer=2222222;
        }
    }
    for (Integer integer : integers) {
        System.out.println(integer);
    }
}

数组增强for改变时候的class

@Test
public void test2() {
    Integer[] integers = new Integer[5];

    for(int i = 0; i < integers.length; ++i) {
        integers[i] = i;
    }

    Integer[] var6 = integers;
    int var3 = integers.length;

    int var4;
    Integer integer;
    for(var4 = 0; var4 < var3; ++var4) {
        integer = var6[var4];
        if (integer == 2) {
            integer = 2222222;
        }
    }

    var6 = integers;
    var3 = integers.length;

    for(var4 = 0; var4 < var3; ++var4) {
        integer = var6[var4];
        System.out.println(integer);
    }

}

集合增强for的时候改变

@Test
public void test3(){
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(11);
    list.add(111);
    list.add(1111);
    for (Integer integer : list) {
        if(integer==11){
            integer = 0;
        }
    }

    for (Integer integer : list) {
        System.out.println(integer);
    }
}

结果

1
11
111
1111

增强for改变的.class文件

@Test
public void test3() {
    ArrayList<Integer> list = new ArrayList();
    list.add(1);
    list.add(11);
    list.add(111);
    list.add(1111);
    Iterator var2 = list.iterator();

    Integer integer;
    while(var2.hasNext()) {
        integer = (Integer)var2.next();
        if (integer == 11) {
            integer = 0;
        }
    }

    var2 = list.iterator();

    while(var2.hasNext()) {
        integer = (Integer)var2.next();
        System.out.println(integer);
    }

}

标签:integers,增强,var4,list,add,数组,Integer,集合,integer
From: https://www.cnblogs.com/Knightl8/p/16955042.html

相关文章

  • 数组-Array
    数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型数据的集合。  数组的特点:1.数组是相同数据类型的集合。(int类型的数组不能放double......
  • Go-09 Go语言中数组、切片的排序算法以及sort包
    packagemainimport( "fmt" "sort")//Golang数组中的切片及sort包funcmain(){ //1.选择排序 varnumSlice=[]int{9,8,7,6,5,4} fori:=0;i<le......
  • 05 Java 数组
    Java数组一、什么是数组数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的顺序排列组合而成其中每一个数据称为数组元素,每个数组元素可以通过......
  • vue 数组转组织树
    //树节点中查询遍历组织getNode(data,key,val){lettreeNode="";data.some(item=>{letflag=false;console.log("item[......
  • 连续子数组的最大和
    public class Solution {    public int FindGreatestSumOfSubArray(int[] array) {        int[] dp = new int[array.length];     ......
  • java中List集合的多种遍历方式
    文章目录​​1.for循环遍历​​​​2.for循环的简化版遍历​​​​3.传统迭代器方式​​​​4.forEach遍历​​​​5.stream遍历​​​​附​​新建一个集合用于遍历:L......
  • .NET性能优化-ArrayPool同时复用数组和对象
    前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下。读者的问题是这样的:大佬您好,之前读了您的文章受益匪浅,我们有......
  • hdu6153后缀数组或扩展KMP
    前两天刷了几题leetcode,感觉挺简单,于是又想刷刷hduoj了。随便打开没做过的一页,找了一题通过人数最多的,就是这道6153.①.看完题没想太多,觉得应该是后缀数组(多年没刷题的我......
  • 集合
    集合集合概述数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对......
  • Queries Gym - 100741A - 树状数组
    给定\(n\)和\(m\),对于\(n\)个数字\(a_i\),进行下列三种操作:(1)+pr:将p位置的元素加上r,输出此时p位置的值;(2)-pr:将p位置的元素减去r,若p位置的值小......