콘텐츠
자바에서 링크드 목록을 구성하는 방법. 닫힌 목록은 프로그래밍 세계의 주요 데이터 유형 중 하나입니다. 다음 노드를 가리키는 데이터 및 참조가 포함 된 노드 조직입니다. Java에서 링크 된 목록을 정렬하려면 알고리즘을 순서대로 구현하는 Collections 프레임 워크와 함께 작동하는 목록 클래스가 있습니다.
지침
Java에서 링크 된 목록 구성 (Fotolia.com에서 danimages하여 심문 이미지)-
새 LinkedList 객체를 만들고 LinkedList 변수를 할당하여 링크 된 목록을 선언하십시오. LinkedList는 generic List 클래스에서 가져 오므로 List를 허용하는 모든 메서드는 LinkedList 객체에서도 허용됩니다. ""LinkedList l = 새 LinkedList (); ""
-
동일한 유형의 객체 (예 : 정수)를 목록에 추가하십시오. 이들은 모든 종류의 객체가 될 수 있지만 링크 된 목록을 정렬하려면 모두 동일한 유형이어야합니다.
-
List.addFirst 메서드를 사용하여 목록의 맨 위에 새 객체를 삽입하면 추가하는 모든 객체가 반대 순서가됩니다. 목록의 끝에 추가하려면 List.addLast 메서드를 사용합니다. ""list.addFirst (1); list.addFirst (3); list.addFirst (2); "
-
iterator를 사용하여 목록을 반복하고 정렬 방법이 무엇을하는지보기 전후에 인쇄하십시오. ""for (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "
Java에서 링크 된 목록 정렬
-
목록을 기본 비교 자로 정렬하십시오. Comparator는 두 객체를 비교하는 객체입니다. 기본 비교 자 객체는 더 작은 연산자를 사용하므로 목록은 오름차순으로 정렬됩니다. 목록을 정렬하려면 정적 Collections.sort 메서드를 사용합니다. ""Collections.sort (목록); ""
-
y) {return -1; "> 비교 인터페이스를 구현하는 클래스를 작성하고이를 순서 인수로 인스턴스에 전달하여 사용자 정의 비교 자로 목록을 정렬하십시오. 비교자를 구현하는 클래스는 단순한 "공용 클래스 GreaterThan은 Comparator를 구현합니다. if (x == y) {return 0;} else {return 1;}}}"
-
GreaterThan의 새 인스턴스를 두 번째 인수로 전달하여 Collections.sort에 대한 호출을 사용합니다. 큰 개체는 다른 개체보다 앞에 있으므로 목록은 오름차순이 아닌 내림차순으로 정렬됩니다. 또는 입력 한 사용자 지정 클래스에서 개체 목록을 정렬하는 경우이 클래스는 별도의 Comparator 클래스를 사용하는 대신 Comparable 인터페이스를 구현할 수 있습니다. ""Collections.sort (list, new GreaterThan ()); ""
기본 및 사용자 지정 비교자를 사용하여 정렬
어떻게
- 회로 및 List.size () 메서드에서 반복 할 정수를 사용하는 것이 문제입니다. 닫힌리스트를 반복하는 것은 값 비싼 계산 작업입니다. 모든 명령에서와 같이 인덱스 연산자 (예 : l [2])를 사용하는 경우 Java는 인덱스 2에 도달 할 때까지 목록을 반복해야합니다. 작은 목록의 경우 이는 큰 것이지만, 인덱스 연산자를 사용하여 많은 리소스가 필요한 무언가로 바뀝니다.
- LinkedList는 동일한 인터페이스를 구현하므로 List 객체가 어떻게 구현 되더라도 상관 없습니다.
- 비교 메소드는 arg0가 arg1보다 먼저 정렬되면 -1로, 똑같이 정렬되면 0으로, arg0보다 앞에 arg1이 정렬되면 1로 반환됩니다.
공지 사항
- iterator 객체는 목록의 각 노드가 한 번만 방문하도록합니다. 필요없이 우리를 방문하면 프로그램이 오작동하는 지점까지 데이터 구조를 남용 할 수 있으므로 기억해야 할 중요한 사항입니다.