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.
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.
Wacan liyane: |
---|
GO TO FULL VERSION