English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java Controllo dei flussi

Java Array

Java Orientato agli oggetti (I)

Java Orientato agli oggetti (II)

Java Orientato agli oggetti (III)

Java 异常处理

Java List

Java Queue (coda)

Java Map collection

Java Set collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Programma Java per ottenere l'elemento medio di LinkedList in una singola iterazione

   Esempi Java completi

In questo esempio, impareremo a ottenere l'elemento medio di una LinkedList in una singola iterazione in Java.

Per comprendere questo esempio, assicurati di aver visitato prima i seguenti tutorial:

Esempio 1: ottenere l'elemento medio di LinkedList in una singola iterazione

class LinkedList {
  //创建Node类的对象
  //表示链表的头部
  Node head;
  //静态内部类
  static class Node {
    int value;
    //将每个节点连接到下一个节点
    Node next;
    Node(int d) {
      value = d;
      next = null;
    }
  }
  public static void main(String[] args) {
    //创建一个LinkedList对象
    LinkedList linkedList = new LinkedList();
    //为每个链表节点赋值
    linkedList.head = new Node(1);
    Node second = new Node(2);
    Node third = new Node(3);
    //Collegare ogni nodo della lista al nodo successivo
    linkedList.head.next = second;
    second.next = third;
    //Stampare la lista
    Node pointer = linkedList.head;
    System.out.print("LinkedList: ");
    while (pointer != null) {
      System.out.print(pointer.value + " ");
      pointer = pointer.next;
    }
    //Trovare l'elemento centrale
    Node ptr1 = linkedList.head;
    Node ptr2 = linkedList.head;
    while (ptr1.next != null) {
      //aumenta ptr1 di 2 e ptr2 di 1
      //se ptr1 punta all'ultimo elemento
      //ptr2 punterà all'elemento centrale
      ptr1 = ptr1.next;
      if(ptr1.next != null) {
        ptr1 = ptr1.next;
        ptr2 = ptr2.next;
      }
    }
    System.out.println("\nElemento centrale: " + ptr2.value);
  }
}

Risultato di output

LinkedList: 1 2 3 
Elemento centrale: 2

Nel esempio sopra, abbiamo implementato la struttura dati della lista collegata in Java. Poi, abbiamo trovato l'elemento centrale nella lista in un ciclo.

    while (ptr1.next != null) {
      //aumenta ptr1 di 2 e ptr2 di 1
      //se ptr1 punta all'ultimo elemento
      //ptr2 punterà all'elemento centrale
      ptr1 = ptr1.next;
      if(ptr1.next != null) {
        ptr1 = ptr1.next;
        ptr2 = ptr2.next;
      }
    }

In questo caso, abbiamo due variabili ptr1 e ptr2. Utilizziamo queste variabili per esplorare la lista.

In ogni iterazione, ptr1 accederà a due nodi, mentre ptr2 accederà a un singolo nodo della lista.

Ora, quando ptr1 raggiunge la fine della lista collegata, ptr2 si troverà al centro. In questo modo, possiamo ottenere la posizione centrale della lista in un singolo passaggio di iterazione.

示例2:使用LinkedList类获取LinkedList的中间元素

import java.util.LinkedList;
class Main {
  public static void main(String[] args){
    //使用 LinkedList 类创建链表
    LinkedList<String> animals = new LinkedList<>();
    //Aggiungi elementi alla LinkedList
    animals.add("Dog");
    animals.addFirst("Cat");
    animals.addLast("Horse");
    System.out.println("LinkedList: " + animals);
    //Accesso all'elemento centrale
    String middle = animals.get(animals.size() / 2);
    System.out.println("Elemento centrale: " + middle);
    }
}

Risultato di output

LinkedList: [Cat, Dog, Horse]
Elemento centrale: Dog

Nell'esempio sopra, abbiamo utilizzato la classe LinkedList per implementare la struttura dati elenco. Notare l'espressione

animals.get(animals.size() / 2)
  • size() / 2 - Restituisce la posizione dell'elemento centrale

  • get() - Restituisce l'elemento situato nella posizione centrale

Esempi Java completi