LINKED LIST IN JAVA
Linked List adalah kumpulan yang bisa berisi banyak objek dengan tipe yang sama, seperti Array List. LinkedList memiliki semua metode yang sama dengan Array List karena keduanya mengimplementasikan antarmuka List. Ini berarti Anda dapat menambahkan item, mengubah item, menghapus item, dan menghapus daftar dengan cara yang sama.
Cara Kerja Linked List adalah menyimpan itemnya dalam "kontainer". Daftar tersebut memiliki tautan ke penampung pertama dan setiap penampung memiliki tautan ke penampung berikutnya dalam daftar. Untuk menambahkan elemen ke daftar, elemen ditempatkan ke dalam penampung baru dan penampung itu ditautkan ke salah satu penampung lain dalam daftar.
Metode Linked List
Untuk banyak kasus, Array List lebih efisien karena biasanya memerlukan akses ke item acak dalam daftar, tetapi Linked List menyediakan beberapa metode untuk melakukan operasi tertentu dengan lebih efisien:
Metode
- addFirst () Menambahkan item ke awal daftar.
- addLast () Tambahkan item ke akhir daftar
- removeFirst () Menghapus item dari awal daftar.
- removeLast () Menghapus item dari akhir daftar
- getFirst () Dapatkan item di awal daftar
- getLast () Dapatkan item di akhir daftar
Source Code
- /**
- * Write a description of class LinkedElement here.
- *
- * @author (your name)
- * @version (a version number or a date)
- */
- import java.util.LinkedList;
- import java.util.Scanner;
- import java.util.InputMismatchException;
- public class LinkedElement{
- private static LinkedList<String> data = new LinkedList<String>();
- private static Scanner scanner = new Scanner(System.in);
- private static void display() {
- System.out.println("\\nData dalam List: " + data);
- System.out.println("Jumlah data: " + data.size());
- }
- private static void add() {
- System.out.print("Input data: ");
- String temp = scanner.nextLine();
- data.add(temp);
- display();
- }
- private static void addToFirst(){
- System.out.print("Input data: ");
- String temp = scanner.nextLine();
- data.addFirst(temp);
- display();
- }
- private static void addToLast() {
- System.out.print("Input data: ");
- String temp = scanner.nextLine();
- data.addLast(temp);
- display();
- }
- private static void locationData() {
- boolean status = true;
- int index = 0;
- display();
- while(status){
- System.out.print("Input data dengan index [0 - " + (data.size() - 1) + "]: ");
- try{
- status = false;
- index = scanner.nextInt();
- }
- catch(InputMismatchException e){
- System.out.println("Data harus angka");
- status = true;
- }
- System.out.print("Input data pada index ke-" + index + ": ");
- String temp = scanner.nextLine();
- data.add(index, temp);
- display();
- }
- }
- private static boolean search(String data) {
- return data.contains(data);
- }
- private static void remove() {
- boolean status = true;
- int index = 0;
- display();
- while(status){
- System.out.print("Hapus data dengan index [0"+(data.size() - 1) + "]: ");
- try {
- status = false;
- index = scanner.nextInt();
- }
- catch (InputMismatchException e) {
- System.out.println("Data harus angka");
- status = true;
- }
- }
- data.remove(index);
- display();
- }
- private static void removeFirst() {
- data.removeFirst();
- display();
- }
- private static void removeLast() {
- data.removeLast();
- display();
- }
- private static void removeData(){
- display();
- System.out.print("Data yang ingin dihapus: ");
- String temp = scanner.nextLine();
- if(search(temp)){
- data.remove(temp);
- }
- else{
- System.out.println("Data tidak ditemukan!!");
- }
- display();
- }
- private static void programExit() {
- System.exit(0);
- }
- private static void programTitle() {
- System.out.println("\\nSimple Linked List Program");
- }
- private static void programSwitcher() {
- boolean status = true;
- int indexMenu = 0;
- while(status) {
- try {
- status = false;
- System.out.print("Pilih Menu [1~9]: ");
- indexMenu = scanner.nextInt();
- }
- catch(InputMismatchException e) {
- System.out.println("Masukan harus berupa Angka!");
- status = true;
- }
- }
- switch(indexMenu){
- case 1: add(); break;
- case 2: addToFirst(); break;
- case 3: addToLast(); break;
- case 4: locationData(); break;
- case 5: remove(); break;
- case 6: removeFirst(); break;
- case 7: removeLast(); break;
- case 8: removeData(); break;
- case 9: programTitle(); break;
- case 10: programExit(); break;
- }
- programMenu();
- }
- private static void programMenu() {
- System.out.println("\\n.: MENU :");
- System.out.println("\\n 1. Add Data");
- System.out.println("\\n 2. Add Data at First");
- System.out.println("\\n 3. Add Data at Last");
- System.out.println("\\n 4. Add Data at N Index");
- System.out.println("\\n 5. Remove Data at N Index");
- System.out.println("\\n 6. Remove Data at First");
- System.out.println("\\n 7. Remove Data at Last");
- System.out.println("\\n 8. Remove Data by Data Content");
- System.out.println("\\n 9. About Program");
- System.out.println("\\n10. Program Exit");
- programSwitcher();
- }
- public static void main(String[] args) {
- programTitle();
- programMenu();
- }
- }
Output
Komentar
Posting Komentar