산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
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 구현 , QueueDeque 인터페이스. List 구현 인터페이스.
3개의 값 저장(이전 주소 , 데이터,다음 주소 ) 단일 위치에 있습니다. 단일 값을 단일 위치에 저장합니다.
이중 연결 목록 구현을 제공합니다. 크기 조정 가능한 배열 구현을 제공합니다.
요소가 추가될 때마다 prevnext 주소가 변경되었습니다. 요소가 추가될 때마다 해당 위치 이후의 모든 요소가 이동합니다.
요소에 액세스하려면 처음부터 요소까지 반복해야 합니다. 인덱스를 사용하여 요소에 무작위로 액세스할 수 있습니다.
<시간>

참고 :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. 자바 벡터