> Java > java지도 시간 > 본문

Java에서 사용자 정의 LinkedList 클래스를 구현하는 방법

王林
풀어 주다: 2023-05-17 08:31:05
앞으로
986명이 탐색했습니다.

1. LinkedList 및 ArrayList

링크를 통해 목록 데이터 조작배열을 통해 데이터 조작사용 시기변경 및 확인추가 및 삭제
-- LinkedList ArrayList
Contact 는 둘 다 java.util 패키지
구현 원칙에 따른 List의 구현 클래스입니다.
2. 맞춤형 LinkedList 클래스(단방향 연결 목록)

1.

LinkedList 클래스와 ArrayList 클래스는 포인터와 노드의 연산을 통해 연결된 목록을 추가, 삭제, 수정 및 확인하는 클래스입니다.

LinkedList 클래스를 사용자 정의하는 단계

1의 노드 노드를 속성으로 갖는 노드 클래스를 만듭니다. 객체 유형의 노드 유형 및 데이터

2. 노드 클래스의 매개변수화된 생성자와 매개변수 없는 생성자를 생성합니다

3. List 인터페이스를 구현하기 위해 자신만의 LinkedList 클래스를 생성합니다

4. LinkedList 클래스에서 새 노드 객체를 생성하고 선언합니다. 컬렉션의 요소를 나타내는 크기

5. size(), get(), isEmpty() 메서드 구현(ArrayList와 유사)

6. 하나의 형식 매개변수를 사용하여 add() 메서드를 작성합니다. 두 개의 형식 매개변수가 있는 add() 메소드

8. 코드를 테스트하기 위한 테스트 클래스 만들기

2. 노드 노드 클래스

노드와 데이터라는 두 가지 속성이 있습니다

노드 유형은 Node

입니다. 데이터 유형은 객체입니다(전달된 특정 데이터 유형을 확인할 수 없기 때문입니다)

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)

Java에서 사용자 정의 LinkedList 클래스를 구현하는 방법size() method

@Override
    public int size() {
        return size;
    }
로그인 후 복사

isEmpty( ) method

 @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;
    }
로그인 후 복사

5. add(int index, Object element)

 @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++;
    }
로그인 후 복사

6 . test class

Java에서 사용자 정의 LinkedList 클래스를 구현하는 방법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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿