2008-09-16 5 views
3

문자열을 등록하고 등록 취소 할 수있는 간단한 클래스 (Java)를 구현하고 현재 문자열 집합을 기준으로 주어진 문자열을 자동 완성하고 싶습니다. 따라서, 인터페이스는 다음과 같습니다간단한 자동 완성 기능을 구현하는 방법은 무엇입니까?

  • 무효 추가 (문자열)
  • 무효 제거 (문자열)
  • 문자열 전체 (문자열)

어떤면에서이 작업을 수행하는 가장 좋은 방법입니다 알고리즘 및 데이터 구조?

+0

complete()가 모호하면 어떻게해야합니까? – maccullt

+0

complete()는 모호성이 시작되는 지점까지만 완료된다는 의미에서 명확합니다 (즉, 등록 된 문자열이지만 일부 등록 된 문자열의 공통 접두어를 반환하지 않음). 등록 된 문자열 목록을 반환하는 다른 방법이있을 수 있습니다. – Kaarel

답변

4

에서 좋은 JavaWorld 예제가있다. 구글에 '패트리샤 트라이'를 검색하면 난 그냥 구글 코드에 server-side autocomplete implementation을 게시

많은 정보 ...이 질문에 우연히 사람들을 위해

+0

환상적인 제안, 나는 패트리샤 트라이에 대해 들어 본 적이 없다. 확실히 나는 더 많은 조사를 할 것입니다. – Aidos

+1

답을 고맙습니다. 나는 기수 나무의 자바 구현을 사용하여 결국 : http://code.google.com/p/radixtree/ – Kaarel

-2

정규식.

0

정렬 된 순서로 유지 관리 할 수있는 일종의 목록이어야합니다. 또한 검색 패턴과 일치하는 목록의 첫 번째 요소 색인을 제공하는 자체 검색 알고리즘을 작성해야합니다. 그런 다음 해당 색인에서 일치하지 않는 첫 번째 요소까지 반복하고 가능한 완료 목록을 얻습니다.

나는 commons-collections에서 TreeList을 봅니다. 정렬 된 순서를 유지하기 위해 목록의 가운데에서 빠르게 삽입하고 제거 할 수 있습니다. 이 목록을 뒷받침하는 트리에서 검색 기능을 작성하는 것이 매우 쉽습니다.

3

사용자가 수행중인 데이터 구조를 3 진 검색 트리라고합니다.

는 데이터 구조에 대한 패트리샤 트라이을 사용하는 것이 좋습니다 www.javaworld.com/javaworld/jw-02-2001/jw-0216-ternary.html

0

을 ... 찾을 수 있습니다. 이 프로젝트에는 기존 애플리케이션과 독립형 HTTP AJAX 자동 완성 서버에 통합 할 수있는 Java 라이브러리가 포함되어 있습니다.

내 희망은 사람들이 효율적으로 자동 완성 기능을 응용 프로그램에 통합 할 수있게하는 것입니다. 타이어 차기!

0

Simple AutoComplete라는 JQuery 플러그인을 만들어 동일한 페이지에 원하는만큼 자동 완성을 추가하고 여분의 param을 사용하여 필터를 추가하고 콜백 함수를 실행하여 id와 같은 다른 매개 변수를 가져올 수 있습니다 항목의

http://www.idealmind.com.br/projetos/simple-autocomplete-jquery-plugin/

관련 문제