java list集合移除元素问题,有经验的朋友指点下。
- Java code
public static void main(String[] args) throws IOException { List<Integer> list = new ArrayList<Integer>(); list.add(100); list.add(101); list.add(102); list.add(103); //删除集合中102元素。 list.remove(102); }
如上代码,一个装整型的list集合。
需求:从该集合中移除某个整型元素。
条件:只提供该整型元素的值(无法获取正确的索引值)。
怎么实现?
[解决办法]
- Java code
import java.util.List;import java.util.ArrayList;import java.io.IOException;/** * Created by IntelliJ IDEA. * User: Administrator * Date: 2011-9-26 * Time: 21:56:13 * To change this template use File | Settings | File Templates. */public class Remove { public static void main(String[] args) throws IOException { List<Integer> list = new ArrayList<Integer>(); list.add(100); list.add(101); list.add(102); list.add(103); //删除集合中102元素。 list.remove(new Integer(102)); for(int i:list){ System.out.println(i); } }}
[解决办法]
- Java code
import java.io.IOException;import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) throws IOException { List<Integer> list = new ArrayList<Integer>(); list.add(100); list.add(101); list.add(102); list.add(103); for (Integer e : list) { System.out.println(e); } // 删除集合中102元素。 list.remove(list.indexOf(102)); System.out.println("=================="); for (Integer e : list) { System.out.println(e); } }}
[解决办法]
remove传进的参数是Object类型和int类型两个重载函数
int的是索引 Object是删除对象
你传一个整型会认为是int 像一楼那样才是Object的
[解决办法]
List集合里面存放的是Integer
可以将int转化为封装类
然后利用List的remove(Object o)方法
注意:如果List集合里面存放的是自己定义的类(MyClass)时,在利用remove方法的时候,需要确保MyClass已经 override equals和hashCode方法。
[解决办法]
2楼和1楼的正确,2楼是获取102的索引,在remove,这样就是根据索引删除list中的值。
1楼,是将remove中obj类型转换成Integer类型。
[解决办法]
//删除集合中102元素。
for(int i = 0; i<list.size();i++){
if(list.get(i).equals(102)){
list.remove(i);
}
System.out.println(list);
//List<Integer> list1 = (List)obj;
//System.out.println(list1);
}