2012-05-21 3 views
-1

Можно создать дубликат:
Sorted ArrayList not displaying?Просмотр ArrayList с сортировкой и без сортировки?

Код:

String title1 = "Original Order\n\n"; 
    String title2 = "Sorted Order\n\n"; 

    String collection = ""; 
    for (int i = 0; i < cdcollection.size(); i++) { 
    collection = collection + cdcollection.get(i); 
    } 
    mainTextArea.setText(title1 + collection); 


    Collections.sort(cdcollection); 

    String temp = ""; 
    for (int j = 0; j < cdcollection.size(); j++) { 
    temp += cdcollection.get(j); 
    } 
    mainTextArea.setText(title2 + temp); 
+0

Этот вопрос не имеет большого смысла, поэтому я задал этот новый вопрос. Я не правильно сформулировал этот вопрос и поэтому не получил ответов, которые я искал. – May

+1

[Издание] (http://stackoverflow.com/posts/10692561/edit). – Alexander

+0

Пожалуйста, откорректируйте свой код правильно. И предоставить полное и точное сообщение об ошибке. –

ответ

1

Я взял ваш код без кода поворота, и список отсортирован правильно. Смотрите ниже код

public static void main(String[] args){ 
    ArrayList<String> cdcollection = new ArrayList(); 
    Collections.addAll(cdcollection, "renier\n", "mert\n", "rain\n", 
      "mylen", "dreb\n"); 

    String title1 = "Original Order\n\n"; 
    String title2 = "Sorted Order\n\n"; 

    String collection = ""; 
    for (int i = 0; i < cdcollection.size(); i++) { 
     collection = collection + cdcollection.get(i); 
    } 
    System.out.println(title1 + collection); 

    Collections.sort(cdcollection); 
    System.out.println(cdcollection); 
} 

для цикла вы использовали здесь

for (int j = 0; j < cdcollection.size(); j++) { 
     mainTextArea.setText(title2 + collection.get(j)); 
} 

Dont добавить title2 в петлю и вызывая SetText в цикле будет более писать старый текст. Добавьте всю строку из списка в строку temp и в последнем наборе в поле mainTextArea. Что-то вроде

String temp = ""; 
for (int j = 0; j < cdcollection.size(); j++) { 
     temp += cdcollection.get(j)); 
} 
mainTextArea.setText(title2 + temp); 

Но это, безусловно, дубликат, упомянутый Александром. вы могли бы отредактировать тот же вопрос.

+0

Для этой строки temp + = collection.get (j)); Я получаю следующую ошибку: «Не могу найти символ symbol: method get (int) location: class java.lang.String« – May

+0

Я взял ваш код и вставил его. Я отредактирую это ... должен быть cdcollection.get (j). – raddykrish

+0

под редакцией. пожалуйста, проверьте. – raddykrish

1

Замените код вашего метода displayButtonActionPerformed следующим:

mainTextArea.append("Original Order\n\n"); 

    for (String s:cdcollection) { 
     mainTextArea.append(s); 
     mainTextArea.append("\n"); 
    } 
    List<String> copy = new ArrayList<String>(cdcollection); 
    Collections.sort(copy); 

    mainTextArea.append("Sorted Order\n\n"); 
    for (String s:copy) { 
     mainTextArea.append(s); 
     mainTextArea.append("\n"); 
    } 

На второй итерации вы перебираете «коллекцию» вместо «cdcollection».

Вызов setText(), заменяет весь текст текстового поля. Вместо этого используйте append().

Смежные вопросы