উত্তরাধিকার ধারণাটি গঠন করুন, যদি বর্তমান শ্রেণিতে কিছু পার্টিকুলার পদ্ধতি না পাওয়া যায় তবে এটি সুপার ক্লাসে সেই পদ্ধতিটি অনুসন্ধান করবে। যদি এটি উপলব্ধ হয় এটি কার্যকর করে।
এটি AbstractList<E>
ক্লাস add()
পদ্ধতি কার্যকর করে যা ছুড়ে দেয় UnsupportedOperationException
।
আপনি যখন একটি অ্যারে থেকে সংগ্রহ ওবেজেক্টে রূপান্তর করছেন। অর্থ্যাৎ সংগ্রহ-ভিত্তিক এপিআই-তে অ্যারে-ভিত্তিক এটি তখন আপনাকে স্থির-আকারের সংগ্রহের অবজেক্ট সরবরাহ করবে, কারণ অ্যারের আচরণ স্থির আকারের।
java.util.Arrays.asList (টি ... ক)
রূপান্তর জন্য সস স্যাম্পেল।
public class Arrays {
public static <T> List<T> asList(T... a) {
return new java.util.Arrays.ArrayList.ArrayList<>(a); // Arrays Inner Class ArrayList
}
//...
private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable {
//...
}
}
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
public E set(int index, E element) {
throw new UnsupportedOperationException();
}
public E remove(int index) {
throw new UnsupportedOperationException();
}
public Iterator<E> iterator() {
return new Itr();
}
private class Itr implements Iterator<E> {
//...
}
public ListIterator<E> listIterator() {
return listIterator(0);
}
private class ListItr extends Itr implements ListIterator<E> {
//...
}
}
উপরের উত্সটি তৈরি করুন যা আপনি পর্যবেক্ষণ করতে পারেন যে java.util.Arrays.ArrayList
শ্রেণিটি তা করে না @Override add(index, element), set(index, element), remove(index)
। সুতরাং, উত্তরাধিকার থেকে এটি সুপার AbstractList<E>
ক্লাস add()
ফাংশন কার্যকর করে যা ছুড়ে দেয় UnsupportedOperationException
।
হিসাবে AbstractList<E>
একটি বিমূর্ত বর্গ এটি বাস্তবায়ন প্রদান করে iterator() and listIterator()
। সুতরাং, আমরা তালিকা অবজেক্ট উপর পুনরাবৃত্তি করতে পারেন।
List<String> list_of_Arrays = Arrays.asList(new String[] { "a", "b" ,"c"});
try {
list_of_Arrays.add("Yashwanth.M");
} catch(java.lang.UnsupportedOperationException e) {
System.out.println("List Interface executes AbstractList add() fucntion which throws UnsupportedOperationException.");
}
System.out.println("Arrays → List : " + list_of_Arrays);
Iterator<String> iterator = list_of_Arrays.iterator();
while (iterator.hasNext()) System.out.println("Iteration : " + iterator.next() );
ListIterator<String> listIterator = list_of_Arrays.listIterator();
while (listIterator.hasNext()) System.out.println("Forward iteration : " + listIterator.next() );
while(listIterator.hasPrevious()) System.out.println("Backward iteration : " + listIterator.previous());
আপনি এমনকি স্থির আকারের অ্যারে ফর্ম সংগ্রহ শ্রেণি তৈরি করতে পারেন Collections.unmodifiableList(list);
নমুনা উত্স:
public class Collections {
public static <T> List<T> unmodifiableList(List<? extends T> list) {
return (list instanceof RandomAccess ?
new UnmodifiableRandomAccessList<>(list) :
new UnmodifiableList<>(list));
}
}
এ Collection
- কখনও কখনও একটি ধারক বলা হয় - কেবল এমন এক জিনিস যা একাধিক উপাদানকে একক ইউনিটে ভাগ করে দেয়। সংগ্রহগুলি সামগ্রিক ডেটা সঞ্চয়, পুনরুদ্ধার, হেরফের এবং যোগাযোগ করার জন্য ব্যবহৃত হয়।
@আরো দেখুন