Как изучать коллекции Java - полное руководство

Опубликовано: 2 Июня, 2021

В реальном мире коллекция по определению - это группа статей, имеющих схожие свойства и атрибуты. Поскольку Java - объектно-ориентированный язык, он имитирует реальный мир. В Java Коллекция - это группа из нескольких объектов, объединенных в единое целое. Коллекции Java - это очень обширная тема, и новичку может быть сложно ориентироваться в ней, изучая ее. Здесь у нас есть все, что вам нужно знать, начиная с Java Collections.

Что такое структура сбора?

У нас есть коллекция объектов, теперь нам нужен организованный способ использования этих коллекций, поэтому нам нужен фреймворк. Java Collection Framework, впервые представленная в JDK 1.2 (Java Development Kit 1.2), представляет собой архитектуру, состоящую из интерфейсов и классов. Проще говоря, это как скелетная структура компонентов, готовая к использованию для различных программных нужд. Он также предлагает различные операции с данными, такие как поиск, сортировка, вставка, удаление и манипулирование. Все классы и интерфейсы фреймворка коллекции включены в пакет java.util.

Иерархия каркаса коллекции

Класс против интерфейса

Класс



Интерфейс

Класс - это определяемый пользователем прототип для создания объектов в Java. Интерфейс - это определяемый пользователем план, который описывает структуру каждого класса, который его реализует.
Он используется для определения объектов. Его нельзя использовать для определения объектов.
Класс может иметь модификаторы доступа public и default. Интерфейс может иметь модификаторы доступа public и default.
Классы могут быть конкретными или абстрактными. Все интерфейсы абстрактные.
Класс состоит из конструкторов, методов и атрибутов. Методы определены в классе. Интерфейс состоит из атрибутов и методов. Методы не определены в интерфейсе, он содержит только их сигнатуру.

Теперь, когда у нас есть основные концепции того, из чего состоят коллекции Java, мы подробно разберемся с каждым из ее компонентов. Каковы их свойства и несколько примеров наиболее часто используемых коллекций?

1. Итерируемый

Интерфейс Iterable является корнем всей иерархии коллекции, что означает, что каждый класс и интерфейс реализуют его. Основная функция итератора - позволить пользователю пройти через все объекты класса коллекции, как если бы они были простыми последовательностями элементов данных.

2. Сбор

Интерфейс Collection расширяет интерфейс Iterable. В нем есть основные методы, необходимые для использования всех других коллекций в структуре для добавления, удаления и управления данными. Поскольку это интерфейс, он имеет только сигнатуру метода (т.е. <return type> methodName (ArgumentList);) и не имеет определения, потому что каждый интерфейс или класс, реализующий этот интерфейс, будет иметь разные типы элементов для обработки. Но поскольку они реализуют этот интерфейс, остальная часть коллекции имеет единообразие и структуру. Ниже приведены методы интерфейса коллекции, все интерфейсы и классы, которые расширяют или реализуют интерфейс коллекции, используют эти методы вместе со своими собственными добавленными методами, специфичными для них.

3. Список

Интерфейс List расширяется от интерфейса Collection. Элементы в списке упорядочены как последовательность. Пользователь может использовать номер индекса для доступа к конкретному элементу в списке, то есть пользователь имеет полный контроль над тем, какой элемент вставлен в список.

3. а) ArrayList

Класс ArrayListclass реализует интерфейс List. Объектами этого класса являются динамические массивы. ArrayList - это, по сути, реализация List с изменяемым размером. Он реализует все методы List и допускает все элементы, даже нулевые. Объекты ArrayList имеют емкость, которая изначально равна размеру, но динамически увеличивается по мере добавления новых элементов. ArrayList не синхронизирован, что означает, что несколько потоков могут обращаться к ним одновременно. Поток - это единица последовательного управления потоком, которая может обрабатываться в операционной системе.

Синтаксис:

 ArrayList <?> ArrayListName = новый список ArrayList <?> ();

Пример: Теперь мы рассмотрим пример и выполним некоторые базовые операции с ArrayList. Здесь мы создаем экземпляр ArrayList с именем intArr. Мы используем метод add () для добавления целых чисел в intArr. Класс Integer, используемый при объявлении intArr, является классом-оболочкой для этого базового типа данных int. Классы-оболочки являются наследниками класса Object и используются, чтобы базовые типы данных были совместимы с другими классами. Затем мы печатаем ArrayList на консоли. Мы используем метод remove () для удаления элементов из указанных индексов. Мы проверяем, существует ли элемент, здесь 25, в intArr и печатаем соответствующее сообщение. Затем мы получаем элемент с индексом 1 с помощью метода get (). Как вы можете видеть, когда элемент удаляется с помощью метода remove (), остальные элементы перемещаются последовательно.

Ява




// An example for ArrayList
// All of the classes and
// interfaces of the collection
// framework are bundled into
// the java.util package
import java.util.*;
public class BasicArrayList {
// main method
public static void main(String[] args) {
// Instantiate an ArrayList Object
// Integer is a wrapper class for
// the basic datatype int
ArrayList<Integer> intArr = new ArrayList<Integer>();
// Add elements using add() method
intArr.add( 10 );
intArr.add( 12 );
intArr.add( 25 );
intArr.add( 19 );
intArr.add( 11 );
intArr.add( 3 );
// Print the ArrayList on the console
System.out.println(intArr);
// Remove elements at index 1 and 4
intArr.remove( 1 );
intArr.remove( 4 );
// Print the ArrayList on the console
System.out.println(intArr);
// Check if intArr contains the element 25
if (intArr.contains( 25 ))
{
System.out.println( "The ArrayList contains 25" );
}
else
{
System.out.println( "No such element exists" );
}
// Use get method to get the element at index 1
int elementAt1 = intArr.get( 1 );
System.out.println( "The Element at index 1 now is " + elementAt1);
}
}
Выход

[10, 12, 25, 19, 11, 3]
[10, 25, 19, 11]
ArrayList содержит 25
Элемент с индексом 1 теперь равен 25.