산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 링크드리스트

자바 링크드리스트

이 튜토리얼에서는 예제를 통해 Java LinkedList에 대해 자세히 알아볼 것입니다.

LinkedList Java 컬렉션 프레임워크의 클래스는 연결 목록 데이터 구조(이중 연결 목록)의 기능을 제공합니다.

<그림>

연결 목록의 각 요소를 노드라고 합니다. . 3개의 필드로 구성됩니다.

<시간>

자바 LinkedList 생성

Java에서 연결 목록을 만드는 방법은 다음과 같습니다.

LinkedList<Type> linkedList = new LinkedList<>();

여기서 유형 연결 목록의 유형을 나타냅니다. 예를 들어,

// create Integer type linked list
LinkedList<Integer> linkedList = new LinkedList<>();

// create String type linked list
LinkedList<String> linkedList = new LinkedList<>();
<시간>

예:자바에서 LinkedList 생성

import java.util.LinkedList;

class Main {
  public static void main(String[] args){

    // create linkedlist
    LinkedList<String> animals = new LinkedList<>();

    // Add elements to LinkedList
    animals.add("Dog");
    animals.add("Cat");
    animals.add("Cow");
    System.out.println("LinkedList: " + animals);
  }
}

출력

LinkedList: [Dog, Cat, Cow]

위의 예에서는 LinkedList을 생성했습니다. 명명된 동물 .

여기에서는 add()을 사용했습니다. LinkedList에 요소를 추가하는 메서드입니다. add()에 대해 자세히 알아보겠습니다. 이 자습서의 뒷부분에 있는 방법입니다.

<시간>

자바 LinkedList 작업

연결 목록의 요소는 순서대로 저장되지 않습니다. 대신 링크(이전 및 다음 ).

<그림>

여기 연결 목록에 3개의 요소가 있습니다.

자세히 알아보려면 LinkedList 데이터 구조를 방문하세요.

<시간>

Java LinkedList의 메소드

LinkedList 연결 목록에서 다양한 작업을 수행할 수 있는 다양한 방법을 제공합니다. 이 자습서에서는 일반적으로 사용되는 네 가지 LinkedList 연산자를 살펴보겠습니다.

<시간>

1. LinkedList에 요소 추가

add()을 사용할 수 있습니다. LinkedList의 끝에 요소(노드)를 추가하는 메서드입니다. 예를 들어,

import java.util.LinkedList;

class Main {
  public static void main(String[] args){
    // create linkedlist
    LinkedList<String> animals = new LinkedList<>();

    // add() method without the index parameter
    animals.add("Dog");
    animals.add("Cat");
    animals.add("Cow");
    System.out.println("LinkedList: " + animals);

    // add() method with the index parameter
    animals.add(1, "Horse");
    System.out.println("Updated LinkedList: " + animals);
  }
}

출력

LinkedList: [Dog, Cat, Cow]
Updated LinkedList: [Dog, Horse, Cat, Cow]

위의 예에서 animals라는 LinkedList를 만들었습니다. . 여기에서는 add()을 사용했습니다. 동물에 요소를 추가하는 방법 .

진술을 주목하십시오.

animals.add(1, "Horse");

여기서는 색인 번호를 사용했습니다. 매개변수. 새 요소가 추가되는 위치를 지정하는 선택적 매개변수입니다.

LinkedList에 요소를 추가하는 방법에 대해 자세히 알아보려면 Java 프로그램을 방문하여 LinkedList에 요소를 추가하세요.

<시간>

2. LinkedList 요소 액세스

get() LinkedList 클래스의 메서드는 LinkedList에서 요소에 액세스하는 데 사용됩니다. 예를 들어,

import java.util.LinkedList;

class Main {
  public static void main(String[] args) {
    LinkedList<String> languages = new LinkedList<>();

    // add elements in the linked list
    languages.add("Python");
    languages.add("Java");
    languages.add("JavaScript");
    System.out.println("LinkedList: " + languages);

    // get the element from the linked list
    String str = languages.get(1);
    System.out.print("Element at index 1: " + str);
  }
}

출력

LinkedList: [Python, Java, JavaScript]
Element at index 1: Java

위의 예에서는 get()을 사용했습니다. 매개변수가 1인 메소드 . 여기에서 메서드는 인덱스 1에 있는 요소를 반환합니다. .

iterator()을 사용하여 LinkedList의 요소에 액세스할 수도 있습니다. 및 listIterator() 방법. 자세한 내용은 Java 프로그램을 방문하여 LinkedList의 요소에 액세스하십시오.

<시간>

3. LinkedList의 요소 변경

set() LinkedList 메소드 클래스는 LinkedList의 요소를 변경하는 데 사용됩니다. 예를 들어,

import java.util.LinkedList;

class Main {
  public static void main(String[] args) {
    LinkedList<String> languages = new LinkedList<>();

    // add elements in the linked list
    languages.add("Java");
    languages.add("Python");
    languages.add("JavaScript");
    languages.add("Java");
    System.out.println("LinkedList: " + languages);

    // change elements at index 3
    languages.set(3, "Kotlin");
    System.out.println("Updated LinkedList: " + languages);
  }
}

출력

LinkedList: [Java, Python, JavaScript, Java]
Updated LinkedList: [Java, Python, JavaScript, Kotlin]

위의 예에서 우리는 언어라는 이름의 LinkedList를 만들었습니다. 줄을 주목하십시오.

languages.set(3, "Kotlin");

여기서 set() 메소드는 인덱스 3의 요소를 변경합니다. 코틀린으로 .

<시간>

4. LinkedList에서 요소 제거

remove() LinkedList 메소드 클래스는 LinkedList에서 요소를 제거하는 데 사용됩니다. 예를 들어,

import java.util.LinkedList;

class Main {
  public static void main(String[] args) {
    LinkedList<String> languages = new LinkedList<>();

    // add elements in LinkedList
    languages.add("Java");
    languages.add("Python");
    languages.add("JavaScript");
    languages.add("Kotlin");
    System.out.println("LinkedList: " + languages);

    // remove elements from index 1
    String str = languages.remove(1);
    System.out.println("Removed Element: " + str);

    System.out.println("Updated LinkedList: " + languages);
  }
}

출력

LinkedList: [Java, Python, JavaScript, Kotlin]
Removed Element: Python
New LinkedList: [Java, JavaScript, Kotlin]

여기서 remove() 메소드는 인덱스 번호를 매개변수로 사용합니다. 그리고 인덱스 번호로 지정된 요소를 제거합니다.

LinkedList에서 요소를 제거하는 방법에 대해 자세히 알아보려면 Java 프로그램을 방문하여 LinkedList에서 요소를 제거하세요.

<시간>

기타 방법

메소드 설명
contains() LinkedList에 요소가 포함되어 있는지 확인
indexOf() 요소가 처음 나타나는 인덱스를 반환
lastIndexOf() 요소의 마지막 항목의 인덱스를 반환
clear() LinkedList의 모든 요소를 ​​제거합니다.
iterator() LinkedList를 반복할 반복자를 반환
<시간>

Deque 및 대기열로서의 LinkedList

LinkedList 이후 클래스는 또한 Queue 및 Deque 인터페이스를 구현하며 이러한 인터페이스의 메서드도 구현할 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 방법입니다.

메소드 설명
addFirst() 연결된 목록의 시작 부분에 지정된 요소를 추가합니다.
addLast() 연결 리스트의 끝에 지정된 요소를 추가
getFirst() 첫 번째 요소를 반환
getLast() 마지막 요소를 반환
removeFirst() 첫 번째 요소 제거
removeLast() 마지막 요소 제거
peek() 연결 리스트의 첫 번째 요소(머리)를 반환
poll() 연결 목록에서 첫 번째 요소를 반환하고 제거합니다.
offer() 연결 리스트의 끝에 지정된 요소를 추가

예:큐로서의 Java LinkedList

import java.util.LinkedList;
import java.util.Queue;

class Main {
  public static void main(String[] args) {
    Queue<String> languages = new LinkedList<>();

    // add elements
    languages.add("Python");
    languages.add("Java");
    languages.add("C");
    System.out.println("LinkedList: " + languages);

    // access the first element
    String str1 = languages.peek();
    System.out.println("Accessed Element: " + str1);

    // access and remove the first element
    String str2 = languages.poll();
    System.out.println("Removed Element: " + str2);
    System.out.println("LinkedList after poll(): " + languages);

    // add element at the end
    languages.offer("Swift");
    System.out.println("LinkedList after offer(): " + languages);
  }
}

출력

LinkedList: [Python, Java, C]
Accessed Element: Python
Removed Element: Python
LinkedList after poll(): [Java, C]
LinkedList after offer(): [Java, C, Swift]
<시간>

예:LinkedList를 Deque로

import java.util.LinkedList;
import java.util.Deque;

class Main {
  public static void main(String[] args){
    Deque<String> animals = new LinkedList<>();

    // add element at the beginning
    animals.add("Cow");
    System.out.println("LinkedList: " + animals);

    animals.addFirst("Dog");
    System.out.println("LinkedList after addFirst(): " + animals);

    // add elements at the end
    animals.addLast("Zebra");
    System.out.println("LinkedList after addLast(): " + animals);

    // remove the first element
    animals.removeFirst();
    System.out.println("LinkedList after removeFirst(): " + animals);

    // remove the last element
    animals.removeLast();
    System.out.println("LinkedList after removeLast(): " + animals);
  }
}

출력

LinkedList: [Cow]
LinkedList after addFirst(): [Dog, Cow]
LinkedList after addLast(): [Dog, Cow, Zebra]
LinkedList after removeFirst(): [Cow, Zebra]
LinkedList after removeLast(): [Cow]
<시간>

LinkedList를 통한 반복

Java for-each 루프를 사용하여 LinkedList를 반복할 수 있습니다. 예를 들어,

import java.util.LinkedList;

class Main {
    public static void main(String[] args) {
        // Creating a linked list
        LinkedList<String> animals = new LinkedList<>();
        animals.add("Cow");
        animals.add("Cat");
        animals.add("Dog");
        System.out.println("LinkedList: " + animals);

        // Using forEach loop
        System.out.println("Accessing linked list elements:");
        for(String animal: animals) {
            System.out.print(animal);
            System.out.print(", ");
        }
    }
}

출력

LinkedList: [Cow, Cat, Dog]
Accessing linked list elements:
Cow, Cat, Dog,
<시간>

링크드리스트 대. 배열 목록

Java ArrayList 및 LinkedList 모두 List 구현 Collections 인터페이스 뼈대. 그러나 그들 사이에는 약간의 차이가 있습니다.

링크드리스트 배열 목록
List 구현 , Queue 및 Deque 인터페이스. List 구현 인터페이스.
3개의 값 저장(이전 주소 , 데이터, 및 다음 주소 ) 단일 위치에 있습니다. 단일 값을 단일 위치에 저장합니다.
이중 연결 목록 구현을 제공합니다. 크기 조정 가능한 배열 구현을 제공합니다.
요소가 추가될 때마다 prev 및 next 주소가 변경되었습니다. 요소가 추가될 때마다 해당 위치 이후의 모든 요소가 이동합니다.
요소에 액세스하려면 처음부터 요소까지 반복해야 합니다. 인덱스를 사용하여 요소에 무작위로 액세스할 수 있습니다.
<시간>

참고 :Java의 인터페이스를 사용하여 LinkedList를 만들 수도 있습니다. 예를 들어,

// create linkedlist using List
List<String> animals1 = new LinkedList<>();

// creating linkedlist using Queue
Queue<String> animals2 = new LinkedList<>();

// creating linkedlist using Deque
Deque<String> animals3 = new LinkedList<>();

여기서 LinkedList가 하나의 인터페이스를 사용하여 생성되면 다른 인터페이스에서 제공하는 메소드를 사용할 수 없습니다. 즉, animals1 Queue에만 해당하는 메서드를 사용할 수 없습니다. 및 Deque 인터페이스.


java

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 벡터