Java8集合Replaceall方法错误
我希望你能帮助我,因为我是Java-8新手Java8集合Replaceall方法错误,java,collections,java-8,Java,Collections,Java 8,我希望你能帮助我,因为我是Java-8新手 public class main { public static void main(String[] args){ ArrayList<Double> coll1 = new ArrayList<>(); coll1.add(2.5); coll1.add(3.5); printColl(multi(coll1)); } public
public class main {
public static void main(String[] args){
ArrayList<Double> coll1 = new ArrayList<>();
coll1.add(2.5);
coll1.add(3.5);
printColl(multi(coll1));
}
public static ArrayList<Double> multi(ArrayList<Double> coll1) {
return coll1.replaceAll(aDouble -> aDouble*2.0);
}
public static void printColl(ArrayList<?> coll) {
coll.stream().forEach(System.out::println);
}
}
公共类主{
公共静态void main(字符串[]args){
ArrayList coll1=新的ArrayList();
第1条增加(2.5);
第1条增补(3.5);
printColl(多(coll1));
}
公共静态ArrayList multi(ArrayList coll1){
返回coll1.replaceAll(aDouble->aDouble*2.0);
}
公共静态void printColl(ArrayList coll){
coll.stream().forEach(System.out::println);
}
}
我有以下问题:我有一个带有2个double的ArrayList,我正试图用“multi”方法修改它。我使用“replaceAll”方法更改lambda表达式的单个值,但我得到了一个错误
错误为“不兼容的类型。必需:java.util.List已找到:void”
我希望您能帮助我,因为我真的不知道为什么会出现此错误。让我们看看replaceAll方法签名:
public void replaceAll(一元运算符)
如您所见,它不返回任何内容,这意味着它修改了现有的ArrayList
因此,在您的情况下,您需要执行以下操作:
public static ArrayList<Double> multi(ArrayList<Double> coll1) {
coll1.replaceAll(aDouble -> aDouble*2.0);
return coll1;
}
publicstaticarraylistmulti(arraylistcoll1){
coll1.replaceAll(aDouble->aDouble*2.0);
返回1;
}
replaceAll
不返回任何内容,它会就地修改。操作完成后,可以使multi
返回void
或返回coll1
。