我需要一些帮助,因为我对java不是很在行。我只需要返回长度为奇数的单词?但我犯了个错误。
import java.io.*;
import java.util.ArrayList;
public class ArrayListOdd {
public static ArrayList<Integer> lengths(ArrayList<String> list) {
ArrayList<Integer> lengthList = new ArrayList<Integer>();
for (String s : list)
lengthList.add(s.length());
return lengthList;
}
public static void main(String args[])
{
ArrayList<String>
list = new ArrayList<String>();
list.add("yoy");
list.add("lmao");
list.add("lol");
list.add("kk");
list.add("bbb");
ArrayList<Integer> lengths = lengths(list);
ArrayList oddList = new ArrayList();
oddList = (ArrayList)list.clone();
if (lengths % 2 != 0) {
System.out.println("Strings with odd length are: " + oddList);
}
}
}
3条答案
按热度按时间p4tfgftt1#
您正试图对列表执行整数运算。'“Length”是arraylist,操作%不适用于它。另外,我认为你不应该在这里使用克隆,而只是重复一下
list
并检查每个元素是否是奇数-打印它或添加到另一个列表如果是。cbjzeqam2#
最好实现一个单独的方法来复制奇数长度的字符串:
那就直接调用这个方法
main
方法:效率较低的方法是复制初始列表,然后使用
removeIf
操作:使用带有过滤操作的流api可以方便地获得相同的结果:
jc3wubiy3#
修改长度方法