CodeGym /Blog Jawa /Acak /Metode Sublist() ing Jawa: ArrayList lan List
John Squirrels
tingkat
San Francisco

Metode Sublist() ing Jawa: ArrayList lan List

Diterbitake ing grup

Apa metode subList()?

Kerangka Koleksi minangka komponen sing populer banget ing Java API. Antarmuka dhaptar lan kelas ArrayList bisa uga minangka alat sing paling penting ing Framework Koleksi. subList minangka cara ing antarmuka List sing ngidini sampeyan nggawe dhaptar anyar saka bagean saka dhaptar sing wis ana. Nanging, dhaptar sing mentas digawe iki mung tampilan kanthi referensi menyang dhaptar asli. Metode Sublist() ing Jawa: ArrayList lan List - 1Contone njupuk dhaptar [1,2,3,4,5,6]. Upaminipun sampeyan pengin nggawe dhaptar anyar tanpa unsur pisanan lan pungkasan. Ing skenario kuwi, cara list.subList () bakal mbantu. metode subList(fromIndex, toIndex) mung nduweni siji wangun lan mbutuhake rong argumen, yaiku indeks pisanan (sakaIndex) lan indeks pungkasan(kanggoIndex) . Bakal ngasilake bagean antarane fromIndex lan toIndex minangka dhaptar anyar. Ana titik penting kanggo elinga. Dhaptar sing mentas digawe bakal kalebu fromIndex lan ora kalebu toIndex. Dadi algoritma kanggo skenario ing ndhuwur bakal kaya iki. List = [1,2,3,4,5,6] newList = List.subList(1,5) Amarga subList minangka metode antarmuka List, sampeyan bisa nggunakake ing ArrayList, LinkedList, Stack, lan obyek Vektor. Nanging, ing artikel iki, kita bakal fokus utamane ing obyek ArrayList lan LinkedList.

Conto metode subList ing obyek ArrayList.

Kita ngumumake ArrayList negara. Banjur kita nyoba bali bagean antarane unsur 2 lan 4.

import java.util.*;
 
public class Main {
    public static void main(String[] args) {
         // create an ArrayList 
        ArrayList list = new ArrayList();
         // add values to ArrayList
         list.add("USA");
         list.add("UK");
         list.add("France");
         list.add("Germany");
         list.add("Russia");
        System.out.println("List of the countries:" + list);
         //Return the subList : 1 inclusive and 3 exclusive
        ArrayList new_list = new  ArrayList(list.subList(1, 3));
        System.out.println("The subList of the list: "+new_list);
    }
 }
Output saka kode ndhuwur bakal
Dhaptar negara:[USA, UK, Prancis, Jerman, Rusia] SubDaftar dhaptar: [Inggris, Prancis]
Ing ArrayList, nilai indeks saka unsur pisanan 0. Mulane, nilai indeks saka unsur kaloro lan papat mungguh 1 lan 3. Dadi, kita njaluk metode sublist() minangka list.subList(1, 3) . Nanging, elinga yen metode subList ngasilake bagean kasebut ora kalebu toIndex sing minangka unsur kaping papat ("Jerman") ing kasus iki. Mangkono bakal mung output "Inggris" lan "Prancis" . Wiwit output bali iku Dhaptar dhewe, sampeyan bisa nelpon sembarang dhaftar cara langsung ing. Dadi apa sing bakal kelakon yen kita nggunakake indeks sing padha kanggo paramèter kasebut? Apa indeks kasebut bakal kalebu utawa ora kalebu ing dhaptar bali? Ayo goleki.

//execute subList() method with the same argument for both parameters.
ArrayList new_list2 = new ArrayList(list.subList(3, 3));
System.out.println("The subList of the list: "+new_list2);
Output yaiku
Daftar sub daftar: [ ]
Output minangka dhaptar kosong. Sanajan fromIndex milih unsur kaping 4, metode subList () bakal mbusak amarga uga toIndex.

Conto metode subList ing obyek LinkedList.

Ing conto iki, kita bakal nggunakake metode sublist ing unsur LinkedList. Maneh, bakal ngasilake dhaptar ing antarane indeks sing ditemtokake sakaIndex(inklusif) lan toIndex(eksklusif) . Elinga yen kita ngandika dhaftar bali dening subList () cara mung tampilan sing wis referensi kanggo dhaftar asli. Yen sampeyan nindakake owah-owahan ing sublist, bakal mengaruhi dhaptar asli uga. Kita bakal nyoba uga ing conto iki.

import java.util.LinkedList;
import java.util.Iterator;
import java.util.List;
 
public class Main {
 
 public static void main(String[] args) {
 
    // Create a LinkedList
    LinkedList linkedlist = new LinkedList();
 
    // Add elements to LinkedList
    for(int i = 0; i<7; i++){
      linkedlist.add("Node "+ (i+1));
    }
 
    // Displaying LinkedList elements
    System.out.println("Elements of the LinkedList:");
    Iterator it= linkedlist.iterator();
    while(it.hasNext()){
       System.out.print(it.next()+ " ");
    }
 
    // invoke subList() method on the linkedList
    List sublist = linkedlist.subList(2,5);
 
    // Displaying SubList elements
    System.out.println("\nElements of the sublist:");
    Iterator subit= sublist.iterator();
    while(subit.hasNext()){
       System.out.print(subit.next()+" ");
    }
 
    /* The changes you made to the sublist will affect the     original LinkedList
     * Let’s take this example - We
     * will remove the element "Node 4" from the sublist.
     * Then we will print the original LinkedList. 
     * Node 4 will not be in the original LinkedList too. 
     */
    sublist.remove("Node 4");
    System.out.println("\nElements of the LinkedList LinkedList After removing Node 4:");
    Iterator it2= linkedlist.iterator();
    while(it2.hasNext()){
       System.out.print(it2.next()+" ");
    }
 }
}
Output bakal katon kaya iki:
Unsur LinkedList: Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Unsur saka sublist: Node 3 Node 4 Node 5 Unsur LinkedList LinkedList Sawise mbusak Node 4: Node 1 Node 2 Node 3 Node 5 Node 7

Apa sing bakal kelakon yen indeks ora kaiket ing subList ()?

Metode subList ngasilake rong jinis pengecualian. Ayo padha ndeleng wong-wong mau. Coba kahanan yen indeks sing ditemtokake ora ana ing kisaran unsur Dhaptar (sakaIndex <0 || toIndex > size) . Banjur bakal mbuwang IndexOutOfBoundExecption .

//using subList() method with fromIndex <0 
ArrayList new_list2 = new ArrayList(list.subList(-1, 3));
System.out.println("Portion of the list: "+new_list2);
 
Exception in thread "main" java.lang.IndexOutOfBoundsException: fromIndex = -1
 
// using subList() method with toIndex > size
ArrayList new_list2 = new ArrayList(list.subList(3, 6));
System.out.println("Portion of the list: "+new_list2);
 
Exception in thread "main" java.lang.IndexOutOfBoundsException: toIndex = 6
Uga, yen fromIndex luwih gedhe tinimbang toIndex (fromIndex > toIndex) , metode subList () mbuwang kesalahan IllegalArgumentException .

//If fromIndex > toIndex
ArrayList new_list2 = new ArrayList(list.subList(5, 3));
System.out.println("Portion of the list: "+new_list2);
 
Exception in thread "main" java.lang.IllegalArgumentException: fromIndex(5) > toIndex(3)

Kesimpulan

Ing artikel iki, kita ngrembug cara subList lan cara nggunakake. subList () cara ngilangake perlu kanggo operasi sawetara eksplisit (Iku jinis operasi sing umum ana kanggo array). Sing paling penting kanggo elinga yaiku metode subList ora ngasilake conto anyar nanging tampilan kanthi referensi menyang dhaptar asli. Mulane, nggunakake cara subList ing dhaptar sing padha bisa nyebabake thread macet ing aplikasi Java sampeyan.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION