读书人

java list集合移除元素有关问题有经

发布时间: 2011-12-11 23:19:43 作者: rapoo

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);
}

读书人网 >Java相关

热点推荐