-- | LinkedList | ArrayList |
Contact | 는 둘 다 java.util 패키지 | |
구현 원칙에 따른 List의 구현 클래스입니다. | 링크를 통해 목록 데이터 조작배열을 통해 데이터 조작 | |
변경 및 확인 | 추가 및 삭제 |
LinkedList 클래스를 사용자 정의하는 단계
1의 노드 노드를 속성으로 갖는 노드 클래스를 만듭니다. 객체 유형의 노드 유형 및 데이터
2. 노드 클래스의 매개변수화된 생성자와 매개변수 없는 생성자를 생성합니다
3. List 인터페이스를 구현하기 위해 자신만의 LinkedList 클래스를 생성합니다
4. LinkedList 클래스에서 새 노드 객체를 생성하고 선언합니다. 컬렉션의 요소를 나타내는 크기
5. size(), get(), isEmpty() 메서드 구현(ArrayList와 유사)
6. 하나의 형식 매개변수를 사용하여 add() 메서드를 작성합니다. 두 개의 형식 매개변수가 있는 add() 메소드
8. 코드를 테스트하기 위한 테스트 클래스 만들기
2. 노드 노드 클래스
노드와 데이터라는 두 가지 속성이 있습니다
입니다. 데이터 유형은 객체입니다(전달된 특정 데이터 유형을 확인할 수 없기 때문입니다)
package MyLinkedList; public class Node { // 定义数据 Object data; // 定义下一结点 Node next; public Node(Object data, Node next) { this.data = data; this.next = next; } public Node() { } }3, size(), isEmpty(), get(int index)
size() method
@Override public int size() { return size; }
@Override public boolean isEmpty() { return size == 0; }
get(int index) method
@Override public Object get(int index) { Node p = node; for (int i = 0; i < index; i++) { p = p.next; } return p.data; }
4. add(Object o)
수신된 데이터를 끝에 삽입합니다
@Override public boolean add(Object o) { add(size, o); return true; }
@Override public void add(int index, Object element) { // 找到需要插入的位置的结点 Node p = node; for (int i = 0; i < index; i++) { p = p.next; } // 创建新结点 Node node1 = new Node(); // 将数据存入集合中 node1.data = element; // 让node1的指针指向下一结点 node1.next = p.next; // 确定node1的直接前驱结点 p.next = node1; // 更新size size++; }
loop 1부터 시작하는 이유: LinkedList 클래스의 시작 부분에 객체가 생성되기 때문에 0부터 시작하면 인쇄된 결과가 null이 되는 것을 볼 수 있습니다
package MyLinkedList; public class test { public static void main(String[] args) { LinkedList linkedList = new LinkedList(); linkedList.add("111"); linkedList.add("222"); linkedList.add("333"); linkedList.add("444"); for (int i = 1; i < linkedList.size(); i++) { System.out.println(linkedList.get(i)); } System.out.println("=================="); linkedList.add(2,999); for (int i = 1; i < linkedList.size(); i++) { System.out.println(linkedList.get(i)); } } }
위 내용은 Java에서 사용자 정의 LinkedList 클래스를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!