АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

List 71

List true

List Java 1.6.0

Int 71

Int 92

Чтобы параметризация коллекции была полной, необходимо указывать параметр и при объявлении ссылки, и при создании объекта.

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

/* пример # 3: работа со списком: DemoIterator.java */

package chapt10;

import java.util.*;

public class DemoIterator {

public static void main(String[] args) {

ArrayList<Double> c =

new ArrayList<Double>(7);

for (int i = 0;i < 10; i++) {

double z = new Random().nextGaussian();

c.add(z); //заполнение списка

}

//вывод списка на консоль

for (Double d: c) {

System. out. printf("%.2f ",d);

}

int positiveNum = 0;

int size = c.size(); //определение размера коллекции

//извлечение итератора

Iterator<Double> it = c.iterator();

 

//проверка существования следующего элемента

while (it.hasNext()) {

//извлечение текущего элемента и переход к следующему

if (it.next() > 0) positiveNum++;

else it.remove(); //удаление неположительного элемента

}

System. out. printf("%nКоличество положительных: %d ",

positiveNum);

System. out. printf("%nКоличество неположительных: %d ",

size - positiveNum);

System. out. println("\nПоложительная коллекция");

for (Double d: c) {

System. out. printf("%.2f ",d);

}

}

}

В результате на консоль будет выведено:

0,69 0,33 0,51 -1,24 0,07 0,46 0,56 1,26 -0,84 -0,53

Количество положительных: 7

Количество отрицательных: 3

Положительная коллекция

0,69 0,33 0,51 0,07 0,46 0,56 1,26

Для доступа к элементам списка может также использоваться интерфейс
ListIterator<E>, который позволяет получить доступ сразу в необходимую программисту позицию списка. Такой способ доступа возможен только для списков.

/* пример # 4: замена, удаление и поиск элементов: DemoListMethods.java */

package chapt10;

import java.util.*;

public class DemoListMethods {

public static void main(String[] args) {

ArrayList<Character> a =

new ArrayList<Character>(5);

System. out. println("коллекция пуста: "

+ a.isEmpty());

for (char c = 'a'; c < 'h'; ++c) {

a.add(c);

}

char ch = 'a';

a.add(6, ch); // заменить 6 на >=8 – ошибка выполнения

System. out. println(a);

ListIterator<Character> it; // параметризация обязательна

it= a.listIterator(2); // извлечение итератора списка в позицию

System. out. println("добавление элемента в позицию "

+ it.nextIndex());

it.add('X'); // добавление элемента без замены в позицию итератора

System. out. println(a);

// сравнить методы

int index = a.lastIndexOf(ch); // a.indexOf(ch);

a.set(index, 'W'); // замена элемента без итератора

System. out. println(a + "после замены элемента");

if (a.contains(ch)) {

a.remove(a.indexOf(ch));

}

System. out. println(a + "удален элемент " + ch);

}

}

В результате будет выведено:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)