这就是我所拥有的
ArrayList <String> cdList = new ArrayList();
Collections.addAll(cdList, "ExampleA\n"+"ExampleB\n"+"ExampleC\n"+"ExampleD");
Collections.sort(cdList, String.CASE_INSENSITIVE_ORDER);
System.out.println(cdList);
bigBox.setText("Original Order\n**************\n");
for (int i = 0; i < cdList.size(); i++) {
bigBox.setText(bigBox.getText()+""+cdList.get(i)+"\n");
}
bigBox.setText(bigBox.getText()+"\n\nSorted Order\n************\n");
Collections.sort(cdList);
for (int j = 0; j < cdList.size(); j++) {
bigBox.setText(bigBox.getText()+""+);
}
我希望以原始顺序输出4个示例,并按字母顺序排列。我做错了什么?
答案 0 :(得分:1)
您只在列表中添加一个元素(String),这是一个连接的字符串。
更改此
ArrayList <String> cdList = new ArrayList();
Collections.addAll(cdList, "ExampleA\n"+"ExampleB\n"+"ExampleC\n"+"ExampleD");
到
List <String> cdList = new ArrayList<String>();
Collections.addAll(cdList, "ExampleA","ExampleB","ExampleC","ExampleD");
为了显示您应该使用append而不是setText
。
示例:
bigBox.append("Original Order\n**************\n");
for (String s : cdList) {
bigBox.append(s);
bigBox.append("\n");
}
答案 1 :(得分:0)
我认为您的元素应该是字符串"ExampleA"
,"ExampleB"
,"ExampleC"
和"ExampleD"
。如果是这种情况,那么您在调用Collections.addAll()
时正在执行的操作是将它们添加到cdList中作为一个长字符串。 +
运算符在字符串上使用时会附加它们。您可能希望用逗号分隔它们,以便不要使用:
Collections.addAll(cdList, "ExampleA\n"+"ExampleB\n"+"ExampleC\n"+"ExampleD");
你有:
Collections.addAll(cdList, "ExampleA\n", "ExampleB\n", "ExampleC\n", "ExampleD");