如何按字母顺序对ArrayList进行排序并将其与setText方法一起使用?

时间:2013-11-12 16:47:13

标签: java netbeans arraylist

这就是我所拥有的

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个示例,并按字母顺序排列。我做错了什么?

2 个答案:

答案 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");

了解更多Collections#addAll

为了显示您应该使用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");