Јава колекција пружа архитектуру за рад са групом објеката. Колекција означава једну јединицу објеката. Омогућава нам да складиштимо и манипулишемо групом објеката као јединственом целином.
Лако можемо да извршимо многе операције као што су претраживање, сортирање, уметање, брисање и манипулација групом објеката користећи оквир за прикупљање.
Фрамеворк Јава Цоллецтион пружа неколико интерфејса и класа. Интерфејси садрже Комплет, Листа , Ред, Декуе , а класе садрже Низ листа , Вецтор , ЛинкедЛист , ХасхСет , ТрееСет , ЛинкедХасхСет , и ПриоритиКуеуе .
пролеће и пролеће мвц
У овом одељку ћемо разликовати два елемента Оквир за прикупљање , што је Лист и АрраиЛист. Листа је интерфејс, а АрраиЛист је класа.
Интерфејс листе
Листа је подређени интерфејс оквира колекције који нам омогућава да одржавамо уређену колекцију објеката. Можемо да ускладиштимо дупликате вредности и нулте елементе помоћу листе. Обезбеђује метод заснован на индексу за обављање операција уметања, брисања, претраживања, ажурирања објеката.
Интерфејс листе се налази у пакету јава.утил. Имплементира класе АрраиЛист, ЛинкедЛист, Стацк и Вецтор. Такође је основа класа ЛистИтератор помоћу којих можемо итерирати Листу у правцу напред и назад.
Интерфејс листе обезбеђује позициони приступ и уметање елемената и чува редослед уметања. Инстанца Листе се може креирати коришћењем класа имплементације.
Имплементација листе:
Интерфејс листе можемо имплементирати користећи АрраиЛист, ЛинкедЛист, Вецтор и Стацк цлассес .
Да бисмо инстанцирали интерфејс листе, можемо користити следеће синтаксе:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Размотрите следећи пример листе:
import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Излаз:
плскл
[Hello, Java, Tpoint]
АрраиЛист Цласс
Класа АрраиЛист користи динамички низ за чување елемената. Класа АрраиЛист се понаша као низ, али у њој нема ограничења величине. Можемо додати или уклонити елементе кад год желимо. Можемо да ускладиштимо дуплирани елемент користећи класу АрраиЛист. Интерно управља редоследом уметања.
Класа АрраиЛист је много флексибилнија од традиционалног низа. Он имплементира интерфејс листе да користи све методе интерфејса листе. Одвија се у Јава .утил пакет.
Класа АрраиЛист наслеђује класу АбстрацтЛист и имплементира интерфејс листе. Његовим елементима се може приступити насумично. Не може се користити за примитивне типове као што су инт, цхар, итд.; за ове типове података потребна нам је класа омотача.
Имплементација АрраиЛист:
Класа АрраиЛист наслеђује све методе класе АбстрацтЛист и имплементира интерфејс Лист.
Класа АрраиЛист се може декларисати на следећи начин:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
АрраиЛист се може дефинисати на следећи начин:
ArrayList myList = new ArrayList();
Размотрите доњи пример АрраиЛист:
import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Излаз:
[Hello, Java, Tpoint]
Неке кључне разлике између интерфејса листе и класе АрраиЛист
Неке главне разлике између Листе и АрраиЛист су следеће:
- Једна од главних разлика је у томе Листа је интерфејс, а АрраиЛист је класа оквира Јава Цоллецтион.
- Тхе Листа проширује оквир прикупљања , компаративно АрраиЛист проширује класу АбстрацтЛист и имплементира интерфејс листе .
- Именски простор за Листу и АрраиЛист је Систем.Цоллецтион.Генериц и Систем Цоллецтион, респективно.
- Листа складишти елементе у низу и идентификује се појединачним индексним бројем. Упоредно, АрраиЛист складишти елементе у динамички низ; може расти када је потребно.
Када дефинишемо листу на следећи начин:
List myList = new ArrayList();
То значи да можемо само позвати методе и референтне чланове из интерфејса листе.
Ако дефинишемо АрраиЛист на следећи начин:
фор петља у басх-у
ArrayList myList = new ArrayList();
То значи да можемо позвати доступне методе у АрраиЛист и користити његове чланове поред листе.
Размотрите доњу табелу за нека поређења глава између Листе и АрраиЛист:
База поређења | Листа | Низ листа |
---|---|---|
Генерал | То је интерфејс. | Класа је. |
Рад | Он креира листу објеката којима се може приступити преко појединачног индексног броја. | Он ствара динамички низ који се може проширити по потреби. |
Имплементација | Лист лист1= нев АрраиЛист(); | АрраиЛист миЛист = нев АрраиЛист(); |
Проширити/имплементирати | Проширује оквир прикупљања. | Проширује класу АбстрацтЛист и имплементира интерфејс листе. |
Основни пакет | јава.утил | јава.утил |
Намеспаце | Систем.Цоллецтион.Генериц | Систем.Цоллецтион |
Перформансе | Омогућава бржу манипулацију објектима. | Омогућава спору манипулацију на објектима у поређењу са Листом. |
Инстанција | Не може се инстанцирати. | Може бити инстанциран |
Закључак
Листа је интерфејс, а АрраиЛист је класа оквира Јава колекције. Листа креира статички низ, а АрраиЛист динамички низ за чување објеката. Дакле, листа се не може проширити када је креирана, али користећи АрраиЛист, можемо проширити низ када је то потребно.
Боље је да користите интерфејс листе ако желите да искористите предности полиморфизма. У будућности, ако буде потребно да имплементирамо интерфејс, нећемо морати да мењамо програм.