Microsoft Word кл программирование на Java 2020 Зорина docx



Pdf көрінісі
бет36/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   32   33   34   35   36   37   38   39   ...   65
Байланысты:
Лекции


часть пакета java.util. Как и массив, он может хранить 
список значений и ссылаться на каждый из них, используя числовой индекс 
(порядковый номер элемента). Тем не менее, вы не можете использовать синтаксис 
квадратных скобок для объектов 
ArrayList

В 
ArrayList
число объектов увеличивается или уменьшается по мере 
необходимости, корректировка мощности происходит по мере необходимости.
Элементы могут быть вставлены или удалены с помощью одного лишь вызова 
соответствующего метода. Когда элемент вставлен, другие элементы "отодвигаются 
в сторону", чтобы освободить место тем, которые мы добавили. Точно так же, когда 
элемент удаляется, то список “сжимается”. В Индексы элементов вносятся 
соответствующие коррективы 
ArrayList
хранит ссылки объектов класса 
Object
, что позволяет ему 
хранить любой вид объекта. Мы также можем определить объект 
ArrayList
принимал конкретный тип объекта. Следующее объявление создает объект 
ArrayList
который хранит только объекты 
Family

ArrayList group = new ArrayList 


71 
В этом примере используются 
generics
, которые мы обсудим позже. 
import java.util.ArrayList; 
public class Insects{
public static void main (String[] args) { 
ArrayList box = new ArrayList(); 
box.add (”fly"); 
box.add (”moskito"); 
box.add (”spider"); 
System.out.println (box); 
int location = box.indexOf (”fly"); 
box.remove (location); 
System.out.println (box); 
System.out.println ("At index 1: " + box.get(1)); 
box.add (2, ”spider"); 
System.out.println (box); 
System.out.println (” quantity in box: " + 
box.size()); 
for(String box : box){ 
System.out.println(box); 
}
if(box.contains(”fly")){ 
System.out.println(«
В
коллекции
есть
fly"); 



Эффективность 
ArrayList
Класс 
ArrayList
реализован с использованием базового массива. Массивом 
объектов можно манипулировать, причем индексы остаются непрерывными при 
добавлении или удалении элементов. Если элементы добавляются и удаляются из 
конца списка, эта обработка будет довольно эффективной. Но, как только элементы 
вставляются и удаляются в начале или в середине списка, то остальные элементы 
сразу же сдвигаются. 
Пример реализации коллекции 
ArrayList
для хранения объектов разных 
типов: 
public interface Product {/* ... */} 
public class Picture implements Product { /* ... */ } 
public class Shoe implements Product { /* ... */ } 
public class Book implements Product { /* ... */ } 


72 
public class Toy implements Product { /* ... */ } 
List< Product > products = new ArrayList< Product >(); 
products.add(new Picture()); 
products.add(new Shoe()); 
products.add(new Book()); 
products.add(new Toy()); 
Здесь, наверное, логичнее будет использовать абстрактный класс 
Product
и 
наследоваться от него, чем делать имплементация интерфейса. Product может 
содержать методы общие для всех потомков, а вообще - коллекция более гибкий 
инструмент для такого рода данных, чем примитивный массив. 
Алгоритм для копирования связанный список 
public Node copyList (Node p)

Node q; 
q = null; 
if (p != null) 

q = new Node(); 
q.data = p.data; 
q.link = copyList(p.link); 

return q; 



73 


Достарыңызбен бөлісу:
1   ...   32   33   34   35   36   37   38   39   ...   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет