相关疑难解决方法(0)

正确地从List <Integer>中删除整数

这是我刚刚遇到的一个很好的陷阱.考虑一个整数列表:

List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(6);
list.add(7);
list.add(1);
Run Code Online (Sandbox Code Playgroud)

对你执行时会发生什么的任何有根据的猜测list.remove(1)?怎么样list.remove(new Integer(1))?这可能会导致一些令人讨厌的错误.

在处理整数列表时,区分remove(int index)哪个元素从给定索引remove(Object o)中删除元素以及通过引用删除元素的正确方法是什么?


这里要考虑的要点是提到@Nikita - 精确参数匹配优先于自动装箱.

java collections overloading

194
推荐指数
5
解决办法
8万
查看次数

带有get/remove方法的ArrayList <Integer>

当我在Java中使用ArrayList时,有一些我不理解的东西.这是我的初始化代码:

 ArrayList<Integer> list = new ArrayList <Integer> ();
list.add (0);
list.add (1);
Run Code Online (Sandbox Code Playgroud)

有时我需要通过索引删除一个对象:

list.remove (0) // delete the object in the first box
Run Code Online (Sandbox Code Playgroud)

但有时我想通过其内容删除一个对象:

list.remove (0) // delete the object HAS Which value of 0
Run Code Online (Sandbox Code Playgroud)

这段代码很模糊.为了澄清我想在代码中做什么,我指定这样的类型:

list.remove ((Object) 0) // delete the object which has a value of 0
Run Code Online (Sandbox Code Playgroud)

如果我不AC,唯一知道调用哪些方法的方法是将鼠标指针放在方法上看:java.util.ArrayList.remove boolean(Object object)

Java但它如何产生差异?是否有方法指针?是否有一种不那么模糊的方式来做到这一点?

非常感谢,对不起我的英语.

PS:我应该说我最终使用了SparseIntArray,但我很好奇

java android integer list arraylist

6
推荐指数
1
解决办法
1万
查看次数

从 List 中删除第 N 个出现的元素

Java 8 引入了 Lambdas,它允许我们有效地从 List 中删除所有元素。以下内容从 中删除 2 的所有实例myList

List<Integer> myList;
...
myList.removeIf(x -> x==2);
Run Code Online (Sandbox Code Playgroud)

如果我想删除 N 个元素(在本例中为三个),我将使用for循环。

for (int i = 0; i < 3; i++) {
    myList.remove(Integer.valueOf(2));
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 Lambda 从列表中删除指定数量的元素?如果是这样,它是否比for循环代码更有效?

java lambda java-8

5
推荐指数
1
解决办法
152
查看次数

标签 统计

java ×3

android ×1

arraylist ×1

collections ×1

integer ×1

java-8 ×1

lambda ×1

list ×1

overloading ×1