2011-10-05 5 views
0

ItemList라는 클래스가 있는데, 이는 자동 완성 텍스트 필드에 대한 제안 단어 목록을 제공하는 데 사용됩니다. 따라서 사용자가 문자를 입력하면 추천 단어 목록과 함께 드롭 다운 메뉴가 나타납니다.두 문자열이 일치하는 경우 제안 단어 목록을 반환하십시오.

이 기능에 필요한 코드에 문제가 있습니다.

public List<Interface> SuggestedListOfWords(String prefix) { 


     int i = 0; 
     List<Interface> suggestedListOfWords = null; 

     while(i != wordsList.size()) { 

      String wordElement = wordsList.elementAt(i); 
      Item tempItem = new Item(wordElement); 
      //String item = wordsList.elementAt(i); 
      String itemName = tempItem.name; 
      int compareResult = itemName.compareTo(prefix); 

      if(compareResult == 0) { 



      } 

      i++; 
     } 

     return suggestedListOfWords; 
    } 

의견이 있으십니까?

편집 :

for (String s : wordsList) { 
      if (s.startsWith(prefix)) 
       phrases.add(s); 
     } 

문구 그것은 여기에 추가 문에 대해 불평 List<Interface> 유형입니까?

+3

그리고 무엇이 _ 슬프게도 당신에게 슬픔을 안겨주고 있습니까? – mre

+0

compareto 섹션에서 단어 목록을 가져 와서 suggestListOfWords 목록에 추가하는 방법을 모르겠다. – EI756

+0

먼저'suggestedListOfWords'는 ​​null이 아닌 실제 목록이어야합니다. 둘째, 단어가 동등한 경우에만 단어를 추가하고 싶지 않지만 이미 입력 된 단어로 시작할 수 있습니다 (가정합니다). 셋째, for (string w : wordsList)와 같이 wordsList를 반복하지 않는 이유는 무엇입니까? 그리고 네, * 트라이 *는 더 효율적일 것입니다. 그러나 ... 먼저 * 뭔가를 일하게하십시오. –

답변

0

  phrases.add(s); 

문제는 phrasesList <Interface>, 이고 sString 점이다.

Interfaces이며, 사용자는 String을 넣으려고합니다.

+0

을 참조하십시오. 그렇다면 형식 문자열 목록을 가지고있는 것이 더 낫겠습니까? – EI756

+0

@ EI756 - 예, 적어도 컴파일 할 것입니다! List 을 반환하도록 메소드 서명을 변경해야합니다. –

+0

맞지만 형식 인터페이스 목록을 가질 수 없으며 List와 같은 목록을 나열하십시오. list1 = 새 목록 (); ? – EI756

1

Trie은 이런 종류의 데이터 구조에 적합합니다.

관련 문제