Java 从ArrayList中删除奇数元素
如果您使用的是Java 8,则只需使用:Java 从ArrayList中删除奇数元素,java,arraylist,Java,Arraylist,如果您使用的是Java 8,则只需使用: 完整方法应如下所示: list.removeIf(i -> i % 2 != 0); List<Integer> list = Arrays.asList(3, 5, 6, 24, 7, 9, 1, 8, 28, 11); List<Integer> result = removeOddNumbers(numbers); System.out.println(result); lambda路: [2, 6, 4] N
完整方法应如下所示:
list.removeIf(i -> i % 2 != 0);
List<Integer> list = Arrays.asList(3, 5, 6, 24, 7, 9, 1, 8, 28, 11);
List<Integer> result = removeOddNumbers(numbers);
System.out.println(result);
lambda路:
[2, 6, 4]
N.B由@YCF\u L发布的方法编辑您通过参数传递的列表,而我的方法创建一个新列表,保持原始列表不变您应该使用迭代器从列表中删除项目。这将节省存储奇数元素的临时列表的使用
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Collections.addAll(arrayList, 3, 5, 6, 24, 7, 9, 1, 8, 28, 11);
List<Integer> result = removeOddNumbers(arrayList);
System.out.println(result);
// you can use Iterator.remove()
List arr = new ArrayList();
arr .add(10);
arr .add(20);
arr .add(30);
arr .add(1);
arr .add(2);
// Remove odd elements
// Iterator.remove()
Iterator itr = arr .iterator();
while (itr.hasNext())
{
int x = (Integer)itr.next();
if (x % 2 != 0)
itr.remove();
}
System.out.println("Modified ArrayList : " + arr);
公共静态列表removeOddNumber(列表arrayList){
迭代器itr=arrayList.Iterator();
while(itr.hasNext())
{
int x=(整数)itr.next();
如果(x%2!=0){
itr.remove();
}
}
返回数组列表;
}
或
您可以使用Java8编写更简单的代码。您会遇到什么错误?您可以使用另一个列表来存储要保留的元素或向后迭代。是否可以在调用
removeOddNumbers
的位置添加代码?看:。我在哪里用这个?你是什么意思?我在哪里用这个?我想他还有另一个问题。代码应该主要有效-即使这不是最简单的方法。在List@qwert123上获取找不到符号错误,请使用List
而不是ArrayList
,检查我的编辑器。获取列表上的“找不到”符号错误为well@qwert123发布完整的类,这可能是一个语法错误没有给出一个类,但发布了test@qwert123固定的
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 6, 5, 4));
list.removeIf(i -> i % 2 != 0);
System.out.println(removeOddNumbers(list));
[2, 6, 4]
public static List<Integer> filter(List<Integer> numberList) {
return numberList.stream()
.filter(number -> number % 2 != 0)
.collect(Collectors.toList());
}
List<Integer> list = Arrays.asList(3, 5, 6, 24, 7, 9, 1, 8, 28, 11);
List<Integer> result = removeOddNumbers(numbers);
System.out.println(result);
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Collections.addAll(arrayList, 3, 5, 6, 24, 7, 9, 1, 8, 28, 11);
List<Integer> result = removeOddNumbers(arrayList);
System.out.println(result);
// you can use Iterator.remove()
List arr = new ArrayList();
arr .add(10);
arr .add(20);
arr .add(30);
arr .add(1);
arr .add(2);
// Remove odd elements
// Iterator.remove()
Iterator itr = arr .iterator();
while (itr.hasNext())
{
int x = (Integer)itr.next();
if (x % 2 != 0)
itr.remove();
}
System.out.println("Modified ArrayList : " + arr);
public static List<Integer> removeOddNumbers(List<Integer> arrayList) {
Iterator<Integer> itr = arrayList .iterator();
while (itr.hasNext())
{
int x = (Integer)itr.next();
if (x % 2 != 0) {
itr.remove();
}
}
return arrayList;
}