subList() طريقو ڇا آهي؟
جمع فريم ورڪ جاوا API ۾ هڪ تمام مشهور جزو آهي. لسٽ انٽرفيس ۽ ArrayList ڪلاس شايد سڀ کان اهم اوزار آهن مجموعن جي فريم ورڪ ۾. subList فهرست انٽرفيس ۾ ھڪڙو طريقو آھي جيڪو توھان کي ھڪڙي نئين فهرست ٺاھيو آھي ھڪڙي موجوده فهرست جي ھڪڙي حصي مان. بهرحال، هي نئين ٺاهيل فهرست صرف اصل فهرست جي حوالي سان هڪ نظر آهي. مثال طور [1,2,3,4,5,6] جي فهرست وٺو. فرض ڪريو ته توهان پهرين ۽ آخري عناصر کان سواءِ هڪ نئين لسٽ ٺاهڻ چاهيو ٿا. اهڙي صورتحال ۾، list.subList() طريقو توهان جي مدد ڪندو. subList(fromIndex, toIndex) طريقو صرف ھڪڙو فارم آھي ۽ اھو وٺي ٿو ٻه دليل، جيڪي آھن پھريون انڊيڪس (fromIndex) ۽ آخري انڊيڪس (toIndex) . اهو هڪ نئين لسٽ طور fromIndex ۽ toIndex جي وچ ۾ حصو واپس ڪندو . ياد رکڻ لاء هڪ اهم نقطو آهي. نئين ٺاهيل لسٽ ۾ شامل ٿيندو fromIndex ۽ خارج ڪيو ويندو toIndex. تنهن ڪري مٿين منظرنامي لاءِ الگورتھم ڪجهه هن طرح هوندو. List = [1,2,3,4,5,6] newList = List.subList(1,5) جيئن ته subList لسٽ انٽرفيس جو هڪ طريقو آهي، توهان ان کي ArrayList، LinkedList، Stack، ۽ Vector شين تي استعمال ڪري سگهو ٿا. جڏهن ته، هن آرٽيڪل ۾، اسان بنيادي طور تي ArrayList ۽ LinkedList شين تي ڌيان ڏينداسين.هڪ ArrayList اعتراض تي ذيلي لسٽ جو طريقو مثال.
اسان ملڪن جي هڪ ArrayList جو اعلان ڪري رهيا آهيون. ان کان پوء اسان 2nd ۽ 4th عناصر جي وچ ۾ حصو واپس ڪرڻ جي ڪوشش ڪندا آهيون.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);
}
}
مٿي ڏنل ڪوڊ جي آئوٽ ٿي ويندي
ملڪن جي فهرست: [USA, UK, France, Germany, Russia] The sublist of the list: [UK, France]
هڪ ArrayList ۾، پهرين عنصر جي انڊيڪس ويليو 0 آهي. تنهن ڪري، ٻئي ۽ چوٿين عنصرن جي انڊيڪس ويليو ترتيبوار 1 ۽ 3 آهن. تنهن ڪري، اسان sublist() طريقي کي سڏيندا آهيون list.subList(1, 3) . بهرحال، ياد رکو ته ذيلي لسٽ جو طريقو حصو واپس ڏئي ٿو سواءِ ٽو انڊيڪس جيڪو چوٿون عنصر آهي (“جرمني”) هن صورت ۾. اهڙيء طرح اهو صرف "برطانيه" ۽ "فرانس" جي پيداوار ڪندو . جيئن ته واپسي جي پيداوار هڪ فهرست آهي، توهان ڪنهن به فهرست جي طريقن کي سڌو سنئون ان تي سڏي سگهو ٿا. پوء ڇا ٿيندو جيڪڏهن اسان ٻنهي پيراگرافن لاء ساڳيو انڊيڪس استعمال ڪندا آهيون؟ ڇا اهو انڊيڪس واپس ڪيل لسٽ ۾ شامل يا خارج ڪيو ويندو؟ اچو ته معلوم ڪريون.
//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);
ٻاھر آھي
فهرست جي ذيلي لسٽ: [ ]
پيداوار هڪ خالي فهرست آهي. جيتوڻيڪ fromIndex 4th عنصر چونڊيندو، subList() طريقو ان کي ختم ڪري ڇڏيندو جيئن ته اهو پڻ آهي toIndex.
LinkedList اعتراض تي ذيلي لسٽ جو طريقو مثال.
هن مثال ۾، اسان استعمال ڪنداسين Sublist طريقو LinkedList عنصر تي. ٻيهر، اهو فهرست واپس ڪندو مخصوص انڊيڪس جي وچ ۾ Index (Inclusive) ۽ toIndex (exclusive) . ياد رکو ته اسان چيو آهي ته فهرست واپس ڪئي وئي subList() طريقي سان صرف هڪ ڏيک آهي جنهن ۾ اصل فهرست جو حوالو آهي. جيڪڏهن توهان ذيلي فهرست ۾ ڪا به تبديلي ڪندا آهيو، اهو پڻ اصل فهرست تي اثر انداز ڪندو. اسان هن مثال ۾ پڻ جانچ ڪنداسين.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()+" ");
}
}
}
پيداوار هن طرح نظر ايندي:
LinkedList جا عنصر: Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Node 5 Node Node 6 Node 7 Elements of the LinkedList LinkedList جو Node 4 ختم ڪرڻ کان پوءِ Node 1 Node 2 Node 3 Node 5 Node نوڊ 7
ڇا ٿيندو جيڪڏهن انڊيڪسس ذيلي لسٽ () ۾ حد کان ٻاهر آهن؟
ذيلي لسٽ جو طريقو ٻن قسمن جا استثنا ڏئي ٿو. اچو ته انهن تي هڪ نظر رکون. ھڪڙي صورتحال تي غور ڪريو جيڪڏھن بيان ڪيل انڊيڪس لسٽ عنصر جي حد کان ٻاھر آھن (fromIndex <0 || toIndex> size) . ان کان پوء اهو اڇلائي ڇڏيندو 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
انهي سان گڏ، جيڪڏهن fromIndex toIndex کان وڌيڪ آهي (fromIndex> toIndex) ، subList() طريقو هڪ غير قانوني آرگومينٽ ايڪسپشن غلطي اڇلائي ٿو.
//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)
نتيجو
هن آرٽيڪل ۾، اسان بحث ڪيو ذيلي لسٽ جو طريقو ۽ ان کي ڪيئن استعمال ڪجي. subList() طريقو واضح حد جي عملن جي ضرورت کي ختم ڪري ٿو (اهو عملن جو هڪ قسم آهي جيڪو عام طور تي صفن لاءِ موجود هوندو آهي). ياد رکڻ لاءِ سڀ کان اهم شيءِ آهي سب لسٽ جو طريقو هڪ نئون مثال واپس نه ٿو ڏئي پر اصل فهرست جي حوالي سان هڪ ڏيک. تنهن ڪري، ساڳئي فهرست تي ذيلي لسٽ جو طريقو وڌيڪ استعمال ڪري سگھي ٿو توهان جي جاوا ايپليڪيشن ۾ هڪ ڌاڳو ڦوڪيو.
وڌيڪ پڙهڻ: |
---|
GO TO FULL VERSION