遍历数组进行元素删除,造成数组长度发生变化,解决办法

在对数组进行遍历,并进行增加或则删除的时候,引起数组大小改变,一下是解决办法:

public static void main(String[] args) {
        ArrayList <String>list=new ArrayList<>();
        for(int i=0;i<5;i++){
            list.add("aa"+i);
        }
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("修改后的列表");
        for (int i=0;i<list.size();i++){
            String s=list.get(i);
            if(s.indexOf("aa3")!=-1){
                list.remove(s);
            }
        }
        System.out.println(list);

    }
### C语言中历数的方法 在C语言中,可以通过`for`循环来实现对一维或多维数组历。以下是关于如何使用`for`循环历数的具体方法和示例。 #### 一维数组历 对于一维数组,可以利用简单的`for`循环逐一访问每个元素。以下是一个具体的例子: ```c #include <stdio.h> int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); for (int i = 0; i < n; i++) { printf("arr[%d] = %d\n", i, arr[i]); } return 0; } ``` 上述代码通过计算数组长度 `n = sizeof(arr) / sizeof(arr[0])` 来确定循环次数,并逐一历打印每一个元素[^1]。 --- #### 二维数组历 针对二维数组,通常需要嵌套两个`for`循环分别控制行索引和列索引。以下是一段完整的代码示例: ```c #include <stdio.h> int main() { int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; for (int i = 0; i < 3; i++) { // 控制行号 for (int j = 0; j < 4; j++) { // 控制列号 printf("%d ", arr[i][j]); // 打印当前元素 } printf("\n"); // 每完成一行后换行 } return 0; } ``` 此程序展示了如何通过双重循环依次访问二维数组中的所有元素并按行列顺序输出它们。 --- #### 动态大小的一维数组历 当处理动态分配内存的一维数组时,同样适用普通的`for`循环结构。例如: ```c #include <stdio.h> #include <stdlib.h> int main() { int size; printf("Enter array size: "); scanf("%d", &size); int *arr = (int *)malloc(size * sizeof(int)); if (!arr) { printf("Memory allocation failed!\n"); return -1; } for (int i = 0; i < size; i++) { arr[i] = i + 1; // 初始化数据 } for (int i = 0; i < size; i++) { printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0; } ``` 这里演示了如何创建一个动态大小的整型数组并通过`for`循环初始化以及读取其内容。 --- #### 总结 无论是静态还是动态定义的数组,在C语言里都可以借助标准的`for`循环轻松地完成对其内部各成员的操作。以上介绍了几种常见场景下的具体做法及其对应的源码片段供参考学习。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值