상속 개념을 형성하십시오. 현재 클래스에서 일부 perticular 메소드를 사용할 수 없으면 수퍼 클래스에서 해당 메소드를 검색합니다. 사용 가능한 경우 실행됩니다.
던지는 AbstractList<E>
클래스 add()
메소드를 실행 UnsupportedOperationException
합니다.
Array에서 Collection Obejct로 변환 할 때 즉, 배열 기반의 컬렉션 기반 API에서 배열의 동작은 고정 크기이므로 고정 크기의 컬렉션 객체를 제공합니다.
java.util.Arrays.asList (T ... a)
형태를위한 Souce 샘플.
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 클래스를 만들 수도 있습니다. 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
컨테이너라고도하는 는 단순히 여러 요소를 단일 단위로 그룹화하는 객체입니다. 컬렉션은 집계 데이터를 저장, 검색, 조작 및 통신하는 데 사용됩니다.
@또한보십시오