Java基础知识复习(九) -- 删除ArrayList中的数据

版权声明:无意呢。 https://blog.csdn.net/qq_41900081/article/details/85487138

首先初始化一个Hero集合,里面放100个String对象,名称分别是从
str 0
str 1
str 2

str 99.

通过遍历的手段,删除掉名字编号是8的倍数的对象

若最简单的使用位置查找的方式来删除对应对象会发现,若每次查找并删除,后面的对象会自动前移

参考代码1

package review5;

import java.util.ArrayList;

public class Remove {
	public static void main(String[] args) {
		ArrayList<String> str = new ArrayList<>();
		for(int i = 0; i < 100; i++) {
			str.add("str "+i);
		}
		System.out.println(str);
		//删除掉名字编号是8的倍数的对象
		for(int i = 0; i < str.size(); i++) {
			if(i % 7 == 0) {
				System.out.print(str.get(i)+" ");
				str.remove(i);	
				
			}
		}
		
		str.add(0, "str "+0);
		System.out.println();
		System.out.println(str);
		
	}
}

参考代码2

package review5;

import java.util.ArrayList;

public class Remove {
	public static void main(String[] args) {
		ArrayList<String> str = new ArrayList<>();
		for(int i = 0; i < 100; i++) {
			str.add("str "+i);
		}
		System.out.println(str);
		//temp用来存储名字编号是8的倍数的对象
		ArrayList<String> temp = new ArrayList<>();
		
		for(String s : str) {
			int i = Integer.parseInt(s.substring(4));
			if(i % 8 == 0) {
				temp.add(str.get(i));
			}
		}
		System.out.println(temp);
		
//		for(String t : temp) {
//			str.remove(t);
//		}
		//删除str中与temp中相同的所有对象
		str.removeAll(temp);
		System.out.println(str);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41900081/article/details/85487138
今日推荐