Мегаобучалка Главная | О нас | Обратная связь


П6. Массивы, коллекции и итераторы



2019-08-13 203 Обсуждений (0)
П6. Массивы, коллекции и итераторы 0.00 из 5.00 0 оценок




 

Массив - это набор элементов одного типа, каждый из которых имеет номер (индекс). Следующий пример показывает создание массива строк и их вывод на консоль.

 

package collectionsa;

import java.util.Iterator;

import java.util.ArrayList;

public class CollectionsA {

 

public static String[] str_arr = {"oleg", "nick", "adam"};

   

   

public static void main(String[] args) {

int size = str_arr.length;

   for (int i=0; i<size; i++)

   {

       System.out.println(str_arr[i]);

   }

  

    

}

 

Массив создается «прямым» перечислением

 

String[] str_arr = {"oleg", "nick", "adam"};

 

Результат работы программы представлен выходным окном

 

run:

oleg

nick

adam

ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 0 секунд)

 

Коллекции – это наборы значений различных типов. В следующем примере демонстрируется использование коллекции на основе типа ArrayList:

 

package collectionsa;

import java.util.Iterator;

import java.util.ArrayList;

public class CollectionsA {

 

public static void main(String[] args) {

 

ArrayList arr = new ArrayList();

    

arr.add("one");

arr.add("two");

arr.add("three");

arr.add(4);

arr.add("5");

  

  

Iterator iter = arr.iterator();

 

while(iter.hasNext())

System.out.println(""+iter.next());

  }

}

 

Значения в коллекцию добавляем с помощью метода add. Из примера видно, что в коллекцию добавлены как строки, так и целое число. Для выборки данных из коллекции нужно создать итератор (iterator). Это выполняется в строке

 

Iterator iter = arr.iterator();

 

Теперь с помощью итератора можно «пройтись» по коллекции и последовательно выбирать значения элементов:

 

while(iter.hasNext())

System.out.println(""+iter.next());

 

Удаление элемента из коллекции выполняется следующий код

 

package collectionsa;

import java.util.Iterator;

import java.util.ArrayList;

public class CollectionsA {

 

public static void main(String[] args) {

 

ArrayList arr = new ArrayList();

arr.add("one");

arr.add("two");

arr.add("three");

arr.add(4);

arr.add("5");

Iterator iter = arr.iterator();

while(iter.hasNext())

System.out.println(""+iter.next());

iter = arr.iterator();

while(iter.hasNext()){

       if("three".equals(iter.next())){

           iter.remove();

       }

  }

   System.out.println("After remove:");

   System.out.println(arr);

 

} }

Результат работы программы дает следующее содержимое окна вывода

 

run:

one

two

three

4

5

After remove:

[one, two, 4, 5]

ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 0 секунд)

 

Команда для удаления элемента из коллекции

          iter.remove();

 

Коллекция с встроенным итератором относится к типу Enumeration. Пример дает следующий код

 

package collectionsa;

import java.util.Iterator;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.Vector;

import java.util.*;

 

public class CollectionsA {

   

public static void main(String[] args) {

Vector<String> vl = new Vector<String>();

   Enumeration<String> enm = null;

   vl.add("one");

   vl.add("two");

   vl.add("three");

   vl.add("four");

   enm = vl.elements();

   while(enm.hasMoreElements()){

       System.out.println(enm.nextElement());

   }

 

   System.out.println("new collection starts");

   Enumeration enm2 = null;

   Vector v2=new Vector();

   v2.add(1);

   v2.add("two");

   v2.add(new Date());

   enm2=v2.elements();

   while(enm2.hasMoreElements()){

       System.out.println(""+enm2.nextElement());

   }

  } 

}

 

В этом примере представлены две коллекции. Одна типизированная на базе типа String:

    

Enumeration<String> enm = null;

 

Вторая содержит элементы разных типов

 

            Enumeration enm2 = null;

 

Результат работы программы представлен ниже

 

run:

one

two

three

four

new collection starts

1

two

Thu Aug 06 14:06:31 MSK 2015

ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 1 секунда)

П7. Обработка событий

Должно быть ясно, что обработка событий в приложении Java требует подключения прослушивателя событий. Для событий от кнопок требуется прослушиватель ActionListener (этот прослушиватель также  используется для текстового поля и меню), для событий от клавиатуры - KeyListener, для событий от мыши - MouseListener и т.д. Следует иметь в виду, что прослушиватель событий представляет собой интерфейс – т.е. абстрактный класс, в котором методы только объявлены, но не определены. Так, в интерфейсе ActionListener нужно самостоятельно определить метод actionPerformed(ActionEvent e). В интерфейсе KeyListener следует определить методы keyPressed, keyReleased, keyTyped. Аргументом этих трех последних методов является объект класса KeyEvent, который имеет ряд полезных методов. Метод getKeyCode() позволяет получить числовой код нажатой клавиши, а метод getKeyChar() – символ, соответствующий нажатой клавише. Подключение прослушивателя от клавиатуры реализует метод addKeyListener класса Frame. Метод keyReleased активизируется при отпускании кнопки. Методы keyPressed, keyTyped вызываются при нажатии на кнопку. Метод keyTyped не позволяет получить значений клавиш-модификаторов (ALT, SHIFT,CTRL). Обработчик событий от мыши содержит и вовсе пять методов:

 

q public void mouseEntered(MouseEvent ev); - возникает при входе курсора мыши на элемент формы.

q public void mouseExited(MouseEvent ev); - возникает при выходе курсора мыши из элемента формы.

q public void mousePressed(MouseEvent ev); - событие, связанное с удерживанием кнопки мыши в нажатом состоянии

q public void mouseReleased(MouseEvent ev); - освобождение клавиши мыши

q public void mouseClicked(MouseEvent ev); - нажатие клавиши мыши.

(во всех этих примерах нажатие правой или левой кнопки мыши не различимо).

Следующий пример показывает, как в месте щелчка мыши на форме отображаются координаты точки, в которой произведен щелчок (рисунок 144).

 

package mylabs;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

 

class lab1_12 extends Frame

 implements ActionListener,MouseListener

{

Button b=new Button("Exit");

 

public lab1_12()

{

setLayout(null);

setBackground(new Color(240,230,100));

setSize(300,300);

setVisible(true);

add(b);

b.addActionListener(this);

b.setBounds(20,30,100,20);

 

addMouseListener(this); 

}

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource()==b)

System.exit(0);

}

 

 

public void mouseEntered(MouseEvent ev)

{};

public void mouseExited(MouseEvent ev)

{};

public void mousePressed(MouseEvent ev)

{

int x=ev.getX();

int y=ev.getY();

Graphics g=getGraphics();

g.drawString("X="+x+"; Y="+y,x,y);

};

public void mouseReleased(MouseEvent ev)

{};

public void mouseClicked(MouseEvent ev)

{};

}

public class lab1_13{

public static void main(String[] args)

{

 lab1_12 app=new lab1_12();

}

}

 

Получение x-координаты (y-координаты) реализует метод getX() (getY()) класса MouseEvent в методе mousePressed.

 

 

Рисунок 144. Вывод координат мыши по месту щелчка

 

 

СПИСОК ЛИТЕРАТУРЫ

 

1 Хабибуллин, И. Создание распределенных приложений на Java 2. – СПб.: БХВ–Петербург, 2002. – 692 с. – ББК 32.973.26-018.1.

2 Перроун, П. Дж. Создание корпоративных систем на основе Java 2 Enterprise Edition. Руководство разработчика /Пол Дж. Перроун, Венката С.Р. Кришна, Р. Чаганти – М.: Издательский дом “Вильямс”, 2001. – 1184 с. – ISBN 5-8459-0168-5.

3 Цимбал, А.А. Технологии создания распределенных систем. Для профессионалов / А.А. Цимбал, М.Л. Аншина. – СПб.:Питер, 2003. – 576с. ББК 32.973.202

4 Чапел, Л. TCP/IP. Учебный курс / Л. Чапел, Э. Титтел. – СПб.: БХВ–Петербург, 2003. – 976 с.

5 Хеффельфингер, Д. Java EE и сервер приложений GlassFish 3 –М.: ДМК, 2013. – 416 с.

6 Герман, О.В.Java и Интернет-бизнес /О.В. Герман, Ю.О. Герман. –Мн.: Бестпринт, 2010. – 384 с. – ББК 65-240-21.

7 Герман, О.В. Программирование на Java и с# для студента / О.В. Герман, Ю.О. Герман. – СПб.: БХВ–Петербург, 2005. – 512 с.

8 Холл, М. Программирование для WEB / М. Холл, Л. Браун – М.: Издательский дом “Вильямс”, 2002. – 1264 с.

9 Томас, М. Секреты программирования для Интернет на Java / М. Томас, П. Пател, А. Хадсон, Д. Болл. – www. Books-Shop.com (электронное издание). 2002. – 390 с.

10 Блинов, И.Н. Java. Промышленное программирование / И.Н. Блинов, В.С. Романчик – Мн.: УниверсалПресс, 2007. – 704 с.

11 Сетевые операционные системы / В.Г. Олифер, Н.А. Олифер. – СПб.: Питер, 2001. – 544 с. – ISBN 5-272-0120-6.

12 Гарнаев, А.Ю. Excel, VBA, Internet в экономике и финансах. – СПб.: БХВ–Петербург, 2002. – 816 с. – ISBN 5-94157-050-3.

13 Кровчик, Э .NET. Сетевое программирование для профессионалов / Э. Кровчик, В. Кумар –М.: Лори, 207. – 417 с. – ISBN 5-85582-170-2.

14 Мак-Дональд, М. ASP.NET 4 с примерами на с# 2010 для профессионалов/ М. Мак-Дональд, А. Фримен, М. Шпушта. – Издательский дом “Вильямс”, 2011. – 1424 с. – ISBN 978-5-8459-1702-7.

 

 

Учебное издание

 

 

 

Герман Олег Витольдович

 

 

«АДМИНИСТРИРОВАНИЕ И ПРОГРАММИРОВАНИЕ РАСПРЕДЕЛЕННЫХ ПРИЛОЖЕНИЙ»

 

 

Пособие

для студентов специальности

 «Автоматизированные системы обработки информации»

дневной и дистанционной форм обучения

 

 

Редактор Т. П. Андрейченко

Корректор А. В. Тюхай

 

Подписано в печать   2015г. Формат 60х84 1/16 Бумага офсетная
Гарнитура «Таймс» Отпечатано на ризографе Усл.печ.л. 15,0
Уч.-изд. л. 5,0 Тираж 100 экз. Заказ 833

 

Издатель и полиграфическое исполнение: учреждение образования

 «Белорусский государственный университет информатики и радиоэлектроники»

ЛИ №02330/0494371 от 16.03.2009. ЛП №02330/0494175 от 03.04.2009

220013, Минск, П.Бровки,6

 

 



2019-08-13 203 Обсуждений (0)
П6. Массивы, коллекции и итераторы 0.00 из 5.00 0 оценок









Обсуждение в статье: П6. Массивы, коллекции и итераторы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (203)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)