|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ArrayList(int capacity)
Практически все методы класса являются реализацией абстрактных методов из суперклассов и интерфейсов. Методы интерфейса List<E> позволяют вставлять и удалять элементы из позиций, указываемых через отсчитываемый от нуля индекс: void add(int index, E element) – вставляет element в позицию, указанную в index; void addAll(int index, Collection<? extends E> c) – вставляет в вызывающий список все элементы коллекции с,начиная с позиции index; E get(int index) – возвращает элемент в виде объекта из позиции int indexOf(Object ob) – возвращает индекс указанного объекта; E remove(int index) – удаляет объект из позиции index; E set(int index, E element) – заменяет объект в позиции index, возвращает при этом удаляемый элемент; List<E> subList(int fromIndex, int toIndex) – извлекает часть коллекции в указанных границах. Удаление и добавление элементов для такой коллекции представляет собой ресурсоемкую задачу, поэтому объект ArrayList<E> лучше всего подходит для хранения неизменяемых списков. /* пример # 1: создание параметризованной коллекции: DemoGeneric.java */ package chapt10; import java.util.*;
public class DemoGeneric { public static void main(String args[]) { ArrayList<String> list = new ArrayList<String>(); // ArrayList<int> b = new ArrayList<int>(); // ошибка компиляции list.add("Java"); list.add("Fortress"); String res = list.get(0); /* компилятор “знает” тип значения */ // list.add( new StringBuilder("C#") ); // ошибка компиляции // компилятор не позволит добавить “посторонний” тип System. out. print(list); } } В результате будет выведено: [Java, Fortress] В данной ситуации не создается новый класс для каждого конкретного типа и сама коллекция не меняется, просто компилятор снабжается информацией о типе элементов, которые могут храниться в list. При этом параметром коллекции может быть только объектный тип. Следует отметить, что указывать тип следует при создании ссылки, иначе будет позволено добавлять объекты всех типов. /* пример # 2: некорректная коллекция: UncheckCheck.java */ package chapt10; import java.util.*;
public class UncheckCheck { public static void main(String args[]) { ArrayList list = new ArrayList(); list.add(71); list.add(new Boolean("TruE")); list.add("Java 1.6.0");
// требуется приведение типов int i = (Integer)list.get(0); boolean b = (Boolean)list.get(1); String str = (String)list.get(2); for (Object ob: list) System. out. println("list " + ob);
ArrayList<Integer> s = new ArrayList<Integer>(); s.add(71); s.add(92); // s.add("101");// ошибка компиляции: s параметризован for (Integer ob: s) System. out. print("int " + ob); } } В результате будет выведено: Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |