2014-03-24 4 views
0

ArrayList에서 compareTo를 사용하여 도움이 필요합니다. 가이드로서 나는이 단락을 받았다 :ArrayList에서 compareTo 사용

addOrder (ArrayList words, String newWord) -이 방법은 적절한 알파벳 순서로 newWord를 추가한다. 당신이 사용할 수있는

힌트 : x.compareTo (y)는 x.compareTo (y는) < 0 인 경우

, x는 y를하기 전에 온다)

addOrder는 문자열이 업데이트의 ArrayList를 반환해야합니다.

비록 내가 연구했지만 아직 그것을 ArrayLists에 적용하는 방법을 이해하는 데 어려움을 겪고 있습니다.

import java.util.ArrayList; 
import java.util.ArrayList; 
import java.util.List; 

class StringList { 
    public static void main(String [] args) 
    { 
     ArrayList< String> list = new ArrayList< String>(); 
     list.add("Goldsmiths"); 
     list.add("College"); 
     list.add("London"); 
     list.add("Manchester"); 
     list.add("London"); 
     list.add("York"); 
     System.out.println("These are your words:"); 
     System.out.println(list); 
     System.out.println("This is the size of the array:"); 
     System.out.println(lengthArray(list)); 
     System.out.println("The length of all strings is:"); 
     System.out.println(totalLengthArray(list)); 
    } 

    public static int lengthArray(List<String> list) 
    { 
     return list.size(); 
    } 

    public static int totalLengthArray(List<String> list) 
    { 
     int count = 0; 
     for (String s: list) 
     { 
      count += s.length(); 
     } 
     return count; 
    } 
} 

내가 비교하고 당신이 내 코드에서 볼 수있는 내가 추가 한 목록 항목을 정렬 할이 내가 compareTo 메소드를 사용하려면 내 코드입니다.

+1

왜'Collections.sort (List list)'를 사용하지 않으시겠습니까? – NeplatnyUdaj

+0

compareTo 메소드를 사용하여 문자열 목록을 반복하여 새로운 단어를 추가 할 목록의 위치를 ​​결정할 수도 있습니다. –

답변

3

사용은 Collections.sort(List<T> list, Comparator<T> c);

Collections.sort(yourList,new Comparator<String>() { 
    @Override 
    public int compare(String lhs, String rhs) { 
     return lhs.compareTo(rhs); //or whatever your sorting algorithm 
    } 
}); 
0

은 compareTo는 String 클래스의 방법이다. 그래서, 그것을 사용하기 위해, 다음과 같이 작성해야합니다 : 내가 목록의 요소의 인덱스와를 NewWord이를 NewWord입니다

list.get(i).compareTo(newWord) 

. 여기

는 유용한 link

당신 수 간단한 요소를 추가 한 다음은, Collections.sort (목록)를 사용하지만, 내가 생각하기 때문에이 학교 과제 아마 당신 수 없습니다, 당신은 삽입을 관리해야하므로 필자가 보여준 것처럼 compareTo 메소드를 수동으로 사용했다.