Вопрос: Что такое Java Collection Framework?
Среда Ans Java Collection — это мощная встроенная библиотека, которая предоставляет набор оптимизированных реализаций наиболее часто используемых структур данных и алгоритмов. Она широко используется при создании Java-приложений и решении задач разработки реального программного обеспечения. проблемы.
Какие преимущества Java Collection Framework?
Ответ Некоторые из преимуществ платформы Java Collection:
ПЕРЕРАБОТИМЫЙ ИНТЕРФЕЙС
Интерфейс Iterable в Java является ключевым компонентом Collection Framework. Это корневой интерфейс для всех типов коллекций, которые можно перебирать. Реализация интерфейса Iterable позволяет объекту быть целью «цикла for-each» (также известного как расширенный цикл for).
Также он предоставляет объект-итератор, который можно использовать для прямой итерации всех структур данных, реализующих этот итерируемый интерфейс.
Пример использования FOR EACH LOOP (ENHANCED FOR LOOP)
Внутренне ArrayList реализует список, а интерфейс списка расширяет интерфейс коллекции, а интерфейс коллекции расширяет итерируемый интерфейс.
List
list.add("Java");//Добавить элемент
list.add("Коллекции");//Добавить элемент
list.add("Framework");//Добавить элемент
for (Строковый элемент: список) {//Итерация с использованием расширенного цикла for
System.out.println(элемент);
}
Пример использования объекта ITERABLE
Iterator
в то время как (iterator.hasNext()) {
Строковый элемент = iterator.next();
System.out.println(элемент);
}
Таким образом, мы можем создать собственный итерируемый объект, реализуя итерируемый интерфейс и переопределив методы next, hasNext и delete. Вот пример того же самого.
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 работают безотказно. Это означает, что если коллекция изменяется во время итерации (за исключением собственного метода удаления() итератора), она выдает исключение 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 contains(Object o) : возвращает true, если объект o существует в коллекции.
- Iterator
iterator(): возвращает итератор, указывающий на коллекцию. - Object[] toArray() : конвертирует коллекцию в массив типа Object.
T[] toArray(T[] a) : возвращает массив, содержащий все элементы коллекции; тип времени выполнения возвращаемого массива соответствует указанному массиву. - boolean add(E e) : добавляет элемент e в коллекцию. Возвращает true, если операция прошла успешно.
- boolean remove(Object o) : удаляет объект o из коллекции. Возвращает true, если операция прошла успешно.
- boolean containsAll(Collection> c) : возвращает true, если все элементы в обеих коллекциях одинаковы. Возвращает true, если операция прошла успешно. 10.boolean addAll(Collection расширяет E> c) : добавляет все элементы обеих коллекций. Возвращает true, если операция прошла успешно.
- логическое значение RemoveAll(Collection> c) : удаляет элемент коллекции c из коллекции вызывающего объекта. Возвращает true, если операция прошла успешно.
- boolean saveAll(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(); } } Интерфейс списка
Интерфейс List в Java является частью Java Collections Framework и расширяет интерфейс Collection. Он представляет собой упорядоченную коллекцию (также известную как последовательность), которая допускает позиционный доступ, дублирование элементов и перебор ее элементов. Интерфейс List реализован несколькими классами, такими как ArrayList, LinkedList, Vector и Stack.
Основные характеристики интерфейса списка:
- Упорядоченная коллекция: список сохраняет порядок вставки элементов, то есть доступ к элементам можно получить по их индексу.
- Разрешает дубликаты: список может содержать повторяющиеся элементы, в отличие от наборов, которые не допускают дубликатов.
- Позиционный доступ: к элементам списка можно получить доступ, добавить или удалить их по индексу.
- Итерация: интерфейс List позволяет использовать расширенные циклы for, а также итерацию с использованием Iterator или ListIterator.
Распространенные методы интерфейса списка:
Все методы интерфейса коллекции также реализуются интерфейсом List, поскольку интерфейс List расширяет интерфейс Collection.
- 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, если список не содержит этот элемент.
- intlastIndexOf(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