我需要创建一个列1和2相等的列表
public static List<Integer> lessThanZero(List<Integer> l) {
for(int x = 0; x < list.length; x++) {
if(list[x] < 0){
}
}
}
答案 0 :(得分:3)
注意:这个问题经过大量编辑,现在它已成为一个完全不同的问题。这个答案是针对原始问题的。此时编辑的问题对我没有任何意义,因此我没有修改此答案以解决编辑后的版本。
这应该这样做:
public static List<Integer> lessThanZero(List<Integer> list) {
List<Integer> result = new ArrayList<>();
for (Integer val : list) {
if (val < 0) {
result.add(val);
}
}
return result;
}
或者,从Java 8开始,您可以使用流来完成:
public static List<Integer> lessThanZero(List<Integer> list) {
return list.stream().filter(v -> v < 0).collect(Collectors.toList());
}
答案 1 :(得分:2)
在Java 8+中,您可以使用Stream
,filter
和Collector
。像,
public static List<Integer> lessThanZero(List<Integer> l) {
return l.stream().filter(x -> x < 0).collect(Collectors.toList());
}
在早期版本中,您当前的方法会起作用 - 但是您在收集值时需要保留值(我更喜欢for-each
循环,值得注意List
不是数组)
public static List<Integer> lessThanZero(List<Integer> l) {
List<Integer> r = new ArrayList<>();
for (Integer v : l) {
if (v < 0) {
r.add(v);
}
}
return r;
}
答案 2 :(得分:-1)
希望这会有所帮助。
public static List<Integer> lessThanZero(List<Integer> list) {
List<Integer> lessthanlist = new ArrayList<>();
for(int x = 0; x < list.length; x++) {
if(list[x] < 0){
lessthanlist.add(list[x]);
}
}
return lessthanlist;
}