所以我的这个程序的目标是创建一个方法,它将接受一个字符串和ArrayList
一个参数,它将字符串添加到该字符串ArrayList
然后按字母顺序排列整个事物并返回ArrayList
包括字符串的字母顺序.
我遇到麻烦的是 alphabetized.get(x) = arr.get(x);
该程序将无法编译,因为它无法识别值x但我在for循环中早先说明了所以我不确定为什么它不会运行...
public class TestArrays { static Scanner reader = new Scanner(System.in); public static void main(String[] args) { String pat; ArrayListnames = new ArrayList (); names.add("anna"); names.add("bob"); names.add("matthew"); names.add("charles"); names.add("effron"); System.out.print(newArray(names, pat)); } public static ArrayList newArray(ArrayList arr, String str) { List alphabetized = new ArrayList (arr.size()); arr.add(str); java.util.Collections.sort(arr); for (int x=0; x<=arr.size();x++){ alphabetized.get(x) = arr.get(x); } return alphabetized; } }
谢谢
问题是表达式alphabetized.get(x)
是一个值,而不是一个变量,因此您无法为其分配任何内容.这与数组访问表达式形成对比,数组访问表达式可以充当变量,例如alphabetizedArray[x] = array[x];
.
你需要的set
方法,这需要一个指数,该指数的新值.
alphabetized.set(x, arr.get(x));