Que Java 컬렉션 프레임워크란 무엇입니까?
Ans Java Collection 프레임워크는 가장 일반적으로 사용되는 데이터 구조 및 알고리즘의 최적화된 구현 세트를 제공하는 강력한 내장 라이브러리입니다. Java 애플리케이션을 구축하고 실제 소프트웨어 개발 문제를 해결하는 데 널리 활용됩니다. 도전 과제.
Java 컬렉션 프레임워크의 장점은 무엇입니까?
답변 Java Collection 프레임워크의 장점 중 일부는 다음과 같습니다.
반복 가능한 인터페이스
Java의 Iterable 인터페이스는 컬렉션 프레임워크의 핵심 구성 요소입니다. 반복할 수 있는 모든 컬렉션 유형에 대한 루트 인터페이스입니다. Iterable 인터페이스를 구현하면 객체가 "for-each 루프"(향상된 for 루프라고도 함)의 대상이 될 수 있습니다.
또한 이 반복 가능한 인터페이스를 구현하는 모든 데이터 구조의 순방향 반복에 사용할 수 있는 반복자 개체를 제공합니다.
FOR EACH LOOP 사용 예(ENHANCED FOR LOOP)
내부적으로 ArrayList는 List를 구현하고 List 인터페이스는 Collection 인터페이스를 확장하고 Collection 인터페이스는 Iterable 인터페이스를 확장합니다.
List
list.add("Java");//요소 추가
list.add("컬렉션");//요소 추가
list.add("프레임워크");//요소 추가
for (String element : list) {//향상된 for 루프
를 사용하여 반복
System.out.println(요소);
}
ITERABLE 객체를 사용한 예
Iterator
while (iterator.hasNext()) {
문자열 요소 = iterator.next();
System.out.println(요소);
}
따라서 반복 가능한 인터페이스를 구현하고 next,hasNext 및 제거 메소드를 재정의하는 사용자 정의 반복 가능을 만들 수 있습니다. 다음은 동일한 예입니다.
import java.util.Iterator; class CustomIterable implements Iterable{ private final int[] numbers = {1, 2, 3, 4, 5}; @Override public Iterator iterator() { return new Iterator () { private int index = 0; private int lastReturnedIndex = -1; @Override public boolean hasNext() { return index 메모 :
- Java의 반복자는 실패하지 않습니다. 즉, 반복하는 동안 컬렉션이 수정되면(반복자의 자체 Remove() 메서드를 통한 경우는 제외) ConcurrentModificationException.
이 발생합니다.- remove() 메서드는 요소만 제거할 수 있으며 next() 호출당 한 번만 호출해야 합니다. 그렇지 않으면 IllegalStateException이 발생합니다.
컬렉션 인터페이스
이것은 데이터 구조와 내부 구현이 유연해지는 인터페이스입니다. 대부분의 모든 클래스는 컬렉션 참조에 할당된 객체를 변경하여 간접적으로 구현 변경을 허용하는 이 인터페이스를 구현합니다.
//ArrayList Collectionc = new ArrayList(): c.add(1); c.add(2); c.contains(1); Collection c1 = new LinkedList(): c1.addAll(c);//Array added to a linked list /*What if i dont want arraylist but now i want a priority queue for applying efficient algorithms such as findmax and find min*/ //Just Change Object - SIMPLE! Collection c = new **PriorityQueue**(): c.add(1); c.add(2); c.contains(1); 수집 인터페이스 방법
- int size : 컬렉션의 크기를 반환합니다.
- boolean isEmpty : 컬렉션이 비어 있으면 true를 반환합니다.
- boolean contain(Object o) : Object o가 컬렉션에 존재하면 true를 반환합니다.
- Iterator
iterator() : 컬렉션을 가리키는 반복자를 반환합니다. - Object[] toArray() : 컬렉션을 Object 유형의 배열로 변환합니다.
T[] toArray(T[] a) : 컬렉션의 모든 요소를 포함하는 배열을 반환합니다. 반환된 배열의 런타임 유형은 지정된 배열의 런타임 유형입니다. - boolean add(E e) : 요소 e를 컬렉션에 추가합니다. 작업이 성공하면 true를 반환합니다.
- boolean Remove(Object o) : 컬렉션에서 객체 o를 제거합니다. 작업이 성공하면 true를 반환합니다.
- boolean containAll(Collection> c) : 두 컬렉션의 모든 요소가 동일하면 true를 반환합니다. 작업이 성공하면 true를 반환합니다. 10.boolean addAll(Collection c) : 두 컬렉션의 모든 요소를 추가합니다. 작업이 성공하면 true를 반환합니다.
- boolean RemoveAll(Collection> c) : 호출자 컬렉션에서 컬렉션 c의 요소를 제거합니다. 작업이 성공하면 true를 반환합니다.
- boolean keepAll(Collection> c) : 컬렉션 c에 있는 요소만 유지합니다.
- voidclear() : 컬렉션의 모든 요소를 지웁니다.
컬렉션 클래스를 구현하면 위의 메서드를 재정의하여 사용자 정의 컬렉션을 만들 수 있습니다. 아래는 동일한 예입니다.
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.NoSuchElementException; public class CustomCollectionimplements Collection { private final ArrayList list = new ArrayList(); @Override public int size() { return list.size(); } @Override public boolean isEmpty() { return list.isEmpty(); } @Override public boolean contains(Object o) { return list.contains(o); } @Override public Iterator iterator() { return new Iterator () { private int index = 0; @Override public boolean hasNext() { return index T[] toArray(T[] a) { return list.toArray(a); } @Override public boolean add(E e) { return list.add(e); } @Override public boolean remove(Object o) { return list.remove(o); } @Override public boolean containsAll(Collection> c) { return list.containsAll(c); } @Override public boolean addAll(Collection extends E> c) { return list.addAll(c); } @Override public boolean removeAll(Collection> c) { return list.removeAll(c); } @Override public boolean retainAll(Collection> c) { return list.retainAll(c); } @Override public void clear() { list.clear(); } }
목록 인터페이스
Java의 목록 인터페이스는 Java 컬렉션 프레임워크의 일부이며 컬렉션 인터페이스를 확장합니다. 이는 위치 액세스, 요소 중복 및 해당 요소에 대한 반복을 허용하는 정렬된 컬렉션(시퀀스라고도 함)을 나타냅니다. List 인터페이스는 ArrayList, LinkedList, Vector 및 Stack과 같은 여러 클래스로 구현됩니다.
목록 인터페이스의 주요 특징:
- 순서가 지정된 컬렉션: 목록은 요소의 삽입 순서를 유지합니다. 즉, 요소는 해당 인덱스로 액세스할 수 있습니다.
- 중복 허용: 목록은 중복을 허용하지 않는 집합과 달리 중복 요소를 포함할 수 있습니다.
- 위치 액세스: 목록의 요소는 해당 색인을 통해 액세스, 추가 또는 제거될 수 있습니다.
- 반복: List 인터페이스는 향상된 for 루프뿐만 아니라 Iterator 또는 ListIterator를 사용한 반복도 허용합니다.
목록 인터페이스에서 일반적으로 사용되는 방법:
목록 인터페이스가 컬렉션 인터페이스를 확장하므로 모든 컬렉션 인터페이스 메서드도 목록 인터페이스에 의해 구현됩니다.
- void add(int index, E element): 이 목록의 지정된 인덱스에 지정된 요소 E를 삽입합니다.
- E get(int index): 이 목록의 지정된 위치에 있는 요소를 반환합니다.
- E 제거(int index): 이 목록의 지정된 위치에 있는 요소를 제거합니다.
- E set(int index, E element): 이 목록의 지정된 위치에 있는 요소를 지정된 요소로 대체합니다.
- int indexOf(Object o): 지정된 요소가 처음 나타나는 인덱스를 반환하거나 목록에 해당 요소가 없으면 -1을 반환합니다.
- int lastIndexOf(Object o): 지정된 요소가 마지막으로 나타나는 인덱스를 반환하거나 목록에 해당 요소가 없으면 -1을 반환합니다.
- List subList(int fromIndex, int toIndex): 지정된 fromIndex(포함)와 toIndex(제외) 사이에 있는 이 목록의 부분에 대한 뷰를 반환합니다.
import java.util.ArrayList; import java.util.List; public class ListExample { public static void main(String[] args) { Listlist = new ArrayList(); list.add("Java"); list.add("Collections"); list.add("Framework"); // Accessing elements by index System.out.println("First Element: " list.get(0)); // Removing an element by index list.remove(1); System.out.println("After Removal: " list); // Updating an element list.set(1, "Updated Element"); System.out.println("Updated List: " list); // Using a sublist List sublist = list.subList(0, 1); System.out.println("Sublist: " sublist); } }
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3