数组如何一边遍历一边删除元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组如何一边遍历一边删除元素相关的知识,希望对你有一定的参考价值。
这里一边遍历一边操作是不可取的,操作后集合也变了,之后遍历是改变后的集合。这里是另外一种方式实现。
import java.util.ArrayList;
import java.util.List;
/**
*
* @author MFX
* @date 2017年10月17日
*/
public class as
public static void main(String[] args)
List a = new ArrayList();
for (int i = 0; i < 10; i++)
a.add(i); // 集合添加元素
System.out.println(a); // 打印 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Object[] b = a.toArray(); // 转化为数组,目的为了的得到集合长度的另外一种表示
System.out.println(b.length);// 数组长度打印
for (int i = 0; i < b.length; i++) // 循环 利用数组得到原来集合的长度
a.remove(0); // 集合操作删除 这里只删除索引为0,操作后集合是变了的,前面删除后后面补位上去
System.out.println(a); // 打印 []
System.out.println(a.size()); // 0
参考技术A for(int i=0;i<resJsonArray.size();i++)
String skuId =resJsonArray.getJSONObject(i).getString("skuId");
//JSONArray移除第i个元素后,i下标所指向的后面的那个元素,直接i+1就会跳过这个元素
if(!originalSkuIdList.contains(skuId))
resJsonArray.remove(i);
i =i -1;
Vector
import java.util.Enumeration; import java.util.Vector; public class Vectorfinall { public static void main(String[] args) { // 这个是线程同步的 Vector v = new Vector(); //枚举 //这个遍历就不是用迭代器了额,而是使用枚举,因为是线程安全的,所以可以一边遍历 //一边添加元素,并且可以直接输出出来, 和LinkedListList不一样 Enumeration e = v.elements(); while(e.hasMoreElements()) { e.nextElement(); } } }
以上是关于数组如何一边遍历一边删除元素的主要内容,如果未能解决你的问题,请参考以下文章