List列表中删除指定的多个对象,利用下标来实现



import java.util.ArrayList;
import java.util.List;

public class XZou {

	static class User {

		private String name;
		
	
		public User(String name) {
			super();
			this.name = name;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}

	public static void main(String[] args){
		
		List<User> list = new ArrayList<User>();
		

		for (int i = 1; i <= 10; i++) {

			list.add(new User("张三" + i));//里面放着10个人分别是张三1、张三2、张三3..张三10

		}
		
		//现在我要删除指定的张三7、张三6、张三3、张三2
		
		//当然您也可以去找到这些要删除的对象放到List中然后利用List的removeAll也可以删除。
		
		String []names = {"张三7","张三6","张三3","张三2"};
		
		List<Integer> tag = new ArrayList<Integer>();
		
		int j = 0;
		
		for(int i = 0; i<list.size(); i++){
			
			boolean boo = false;
			
			for(String name: names){
				
				if(list.get(i).getName().equals(name)){
					
					boo = true;
					break;
					
				}
			}
			if(boo){
				tag.add(j);
			}else{
				j++;
			}
			
		}
		//tag 中存放着需要删除的下标
		
		for(int i: tag){
			
			list.remove(i);
			
		}
		
		System.out.println(list);//结果
		
			
	}
	
	
}

你可能感兴趣的:(J#)