37813

Робота з колекціями в мові програмування Java

Лабораторная работа

Информатика, кибернетика и программирование

творити клас, що описує типізовану колекцію (типом колекції є клас з лабораторної роботи №4) із заданою внутрішньою структурою (п.2), що складається не менше ніж з 3 конструкторів (1 – порожній, 2 – в який передається об’єкт, 3 – в який передається стандартна колекція об’єктів, наприклад, ArrayList)

Украинкский

2013-09-25

29 KB

4 чел.

Національний технічний університет України

«Київський політехнічний інститут»

Кафедра АСОІУ

Лабораторна робота №6

На тему:

«Робота з колекціями в мові програмування Java.»

З дисципліни:

«Об’єктно-орієнтоване програмування»

Виконав:

Студент ФІОТ

Групи ІП-01

Торговцев  Максим

№0128

Київ 2011

Завдання

Створити клас, що описує типізовану колекцію (типом колекції є клас з

лабораторної роботи №4) із заданою внутрішньою структурою (п.2), що

складається не менше ніж з 3 конструкторів (1 – порожній, 2 – в який передається обєкт, 3 – в який передається стандартна колекція обєктів, наприклад, ArrayList), а також методів додавання, видалення та заміщення обєкту(ів) в колекції. При додаванні обєкту до колекції виконувати перевірку існування його в колекції. Всі початкові дані задаються у виконавчому методі.

Листинг кода:

Лістинг класів:

//SportsmenList.java

import java.util.*;

public class SportsmenList{

 private Sportsmen element;

 private int size;

 

 public SportsmenList(){

 element = new Sportsmen();

 setSize(1);

}

 

 public SportsmenList(Sportsmen parameter){

 if (parameter == null){

  throw new NullPointerException("Помилка! Параметр конструктора null");

 } else {

  element = parameter;

  setSize(1);

 }

}

 

 public SportsmenList(ArrayList<Sportsmen> parameter){

 if (parameter == null){

  throw new NullPointerException("Помилка! Список спортсменів null");

 } else {

  add(parameter);

  setSize(parameter.size());

 }

}

 

 public final void setSize(int size){

 if (size < 0){

  throw new IndexOutOfBoundsException("Помилка! Від'ємна довжина списку");

 } else {

  this.size = size;

 }

}

 public final int getSize(){

 return size;

}

 public boolean isEmpty(){

 if (getSize() == 0){

  return true;

 }

 return false;

}

 public boolean contains(Sportsmen parameter){

 boolean temp = false;

 if (element == null){

  return false;

 }

 boolean condition = ((element.getFName() == parameter.getFName()) && (element.getLName() == parameter.getLName())

   && (element.getAge() == parameter.getAge()) && (element.getSex() == parameter.getSex())

   && (element.getRank() == parameter.getRank()) && (element.getSport() == parameter.getSport())

   && (element.getCountry() == parameter.getCountry()));

 for(int i = 1; i <= getSize(); i++){

  if (condition == true){

   temp = true;

   while(element.getNext() != null){

    element = element.getNext();

   }

  }

 }

 return temp;

}

 

 public boolean add(Sportsmen parameter){

 //boolean temp = false;

 if (element == null){

  element = parameter;

  setSize(getSize() + 1);

  return true;

 }

 if (contains(parameter) == false){

  element.setNext(parameter);

  parameter.setPrevious(element);

  setSize(getSize() + 1);

  element = element.getNext();

  //temp = true;

 }

 return false;

}

 

 public boolean add(ArrayList<Sportsmen> parameter){

 boolean temp = false;

 while(element.getNext() != null){

  element = element.getNext();

 }

 for(int i = 0; i < parameter.size(); i++){

  if (contains((Sportsmen) parameter.get(i)) == false){

   element.setNext((Sportsmen) parameter.get(i));

   ((Sportsmen) parameter.get(i)).setPrevious(element);

   temp = true;

   setSize(getSize() + parameter.size());

  }

  while(element.getNext() != null){

   element = element.getNext();

  }

 }

 return temp;

}

 

 public void remove(int startPosition, int finalPosition){

 boolean condition = (startPosition >= 1) && (startPosition <= getSize())

 && (finalPosition <= getSize()) && (finalPosition >= startPosition);

 Sportsmen bufer = element;

 

 while(element.getPrevious() != null){

  element = element.getPrevious();

 }   

 if (condition == true){

  if (startPosition != 1){

   for(int i = 1; i < finalPosition; i++){

    element = element.getNext();

    bufer = element;

   }

   while(element.getPrevious() != null){

    element = element.getPrevious();

   }     

   for(int i = 1; i < startPosition; i++){

    element = element.getNext();

   }

   (element.getPrevious()).setNext(bufer.getNext());

   bufer.setPrevious(element.getPrevious());

   setSize(getSize() - (finalPosition - startPosition + 1));

  } else {

   for(int i = 1; i <= finalPosition; i++){

    element = element.getNext();

   }

   if (finalPosition != getSize()){

    element.setPrevious(null);

   }

   setSize(getSize() - (finalPosition - startPosition + 1));

  }

 } else {

  throw new IndexOutOfBoundsException("Помилка! Неіснуюча позиція");

 }

}

 

 public void replace(int position, Sportsmen parameter){

 if ((position >= 1) && (position <= getSize())){

  while(element.getPrevious() != null){

   element = element.getPrevious();

  }

  for(int i = 1; i < position; i++){

   element = element.getNext();

  }

  element.setFName(parameter.getFName());

  element.setLName(parameter.getLName());

  element.setAge(parameter.getAge());

  element.setSex(parameter.getSex());   

  element.setRank(parameter.getRank());

  element.setSport(parameter.getSport());   

  element.setCountry(parameter.getCountry());

  while(element.getNext() != null){

   element = element.getNext();

  }

 } else {

  throw new IndexOutOfBoundsException("Помилка! Уведеної позиції неіснує");

 }

}

 

 public void clear(){

 while(element.getPrevious() != null){

  element = element.getPrevious();

 }

 element.setNext(null);

 setSize(0);

}

 

 public void listOnScreen(){

 if (isEmpty() == true){

  try{

   throw new NullPointerException("Помилка! Колекція пуста");

  }

  catch(NullPointerException e){

   e.printStackTrace();

  }

 } else {

  while(element.getPrevious() != null){

   element = element.getPrevious();

  }

  for(int i = 1; i <= getSize(); i++){

   element.printAll();    

   if (element.getNext() != null){

    element = element.getNext();

   }

  }

 }

}

}

//Main.java

import java.util.*;

public class Main {

 public static void main(String[] args) {

 SportsmenList list = new SportsmenList(new Sportsmen());

 System.out.println("Створений список:");

 list.listOnScreen();

 

 ArrayList<Sportsmen> arraylist = new ArrayList<Sportsmen>();

 arraylist.add(new Sportsmen("Райан", "Гигз", 38, "Чоловік", "Заслужений мастер спорту", "футбол", "Уельс"));

 list.add(arraylist);

 System.out.println("Створений список ArrayList:");

 list.listOnScreen();

 

 Sportsmen sportsmen = new Sportsmen("Андрій", "Шевченко", 35, "Чоловік", "Майстер спорту", "футбол", "Україна");

 list.replace(1, sportsmen);

 list.add(new Sportsmen("Девид", "Бекхем", 36, "Чоловік", "Майстер спорту", "футбол", "Англия"));

 list.add(new Sportsmen("Андрій", "Аршавін", 30, "Чоловік", "Заслужений мастер спорту Росії", "Футбол", "Росія"));

 System.out.println("Заміна першої позиції на sportsmen(Андрей Шевченко):");

 list.listOnScreen();

 

 list.remove(1, 2);

 System.out.println("Список після видалення першої і другої позиції");

 list.listOnScreen();

}

}

//Sportsmen.java

public class Sportsmen {

 private String fName;

 private String lName;

 private int age;

 private String sex;

 private String rank;

 private Sport oSport = new Sport();

 private Country oCountry = new Country();

 private Sportsmen next;

 private Sportsmen previous;

 

 public Sportsmen() {

 this("Райан", "Гигз");

}

 

 public Sportsmen(String fName, String lName) {

 this(fName, lName, 38);

}

 public Sportsmen(String fName, String lName, int age) {

 this(fName, lName, age, "Чоловік");

}

 public Sportsmen(String fName, String lName, int age, String sex) {

 this(fName, lName, age, sex, "Мастер спорту", "футбол", "Англия");

}

 

 public Sportsmen(String fName, String lName, int age, String sex, String rank, String sport, String country ) {

 setFName(fName);

 setLName(lName);

 setAge(age);

 setSex(sex);

 setRank(rank);

 oSport.setSport(sport);

 oCountry.setCountry(country);

 setNext(null);

 setPrevious(null);

}

 

 public final void printAll(){

 System.out.println("FName: " + getFName());

 System.out.println("LName: " + getLName());

 System.out.println("Age: " + getAge());

 System.out.println("Sex: " + getSex());

 System.out.println("Rank: " + getRank());

 System.out.println("Sport: " + getSport());

 System.out.println("Country: " + getCountry());

 System.out.println("");

}

 

 public final void setFName(String fn) {

 fName = fn;

}

 public final void setLName(String ln) {

 lName = ln;

}

 public final void setAge(int a) {

 age = a;

}

 public final void setSex(String h) {

 sex = h;

}

 public final void setRank(String r) {

 rank = r;

}

 public final void setSport(String s) {

 oSport.setSport(s);

}

 public final void setCountry(String c) {

 oCountry.setCountry(c);

}

 public final void setNext(Sportsmen next){

 this.next = next;

}

 public final void setPrevious(Sportsmen previous){

 this.previous = previous;

}

 public final String getFName() {

 return fName;

}

 public final String getLName() {

 return lName;

}

 public final int getAge() {

 return age;

}

 public final String getSex() {

 return sex;

}

 public final String getRank() {

 return rank;

}

 public final String getSport() {

 return oSport.getSport();

}

 public final String getCountry() {

 return oCountry.gerCountry();

}

 public final Sportsmen getNext(){

 return next;

}

 public final Sportsmen getPrevious(){

 return previous;

}

}

Висновок:В лабораторній роботі №6 я виконав умови поставленого завдання. Результат роботи відповідає умові задачі. В роботі я використав та реалізував клас колекції.


 

А также другие работы, которые могут Вас заинтересовать

81769. Герои и проблематика одного из произведений А. Платонова 47.7 KB
  Платонова. Платонов Наше узнавание Платонова было длительным: с 20х годов до сегодняшнего дня. Почему многие произведения Андрея Платонова совсем не были опубликованы при его жизни а те что были напечатаны вызывали резко критическое отношение Почему Сталин прочитав бедняцкую хронику Впрок не пожалел самых ругательных выражений а Горький высоко оценив Чевенгур считал что роман этот опубликован не будет Попробуем ответить на эти вопросы. Все это в той или иной степени отразилось в творчестве Платонова от первого сборника стихов ...
81770. Мотивы преступления и возмездия в произведениях отечественной литературы 45.61 KB
  В художественном арсенале Достоевского можно обнаружить множество средств к которым он прибегает при обрисовке Раскольникова. Портрет Раскольникова набросан лаконично: Кстати он был замечательно хорош собою с прекрасными темными глазами темнорус роста выше среднего тонок строен. Особенно обстоятельно Достоевский рассматривает мотивы преступления Раскольникова. В раскрытии безмерности издевательств над людьми и поругания всего живого большое значение приобретает символический сон Раскольникова из V главы где предстаёт зверское...
81771. Образ Маши Мироновой и смысл названия романа 32.62 KB
  И к Екатерине Маша обращается с прошением о помиловании о милости а не о просьбе соблюсти закон. Маша обращается к Екатерине как к матери Отечества мотив материнства и отцовства очень важен для Пушкина. Маша Миронова и Петр Гринев заслужили свое счастье т. Маша и Гринев преодолевая трудности все испытания которые выпали на их долю спасаются любовью.
81772. Тема героя и толпы в произведениях отечественной литературы 31.76 KB
  Горький Старуха Изергиль Герои притч старухи Изергиль – Ларра и Данко – являются по сути вариациями на одну и ту же тему: оба они герои байронического типа сильные личности противопоставленные толпе посредственностей. И толпа губит и положительного Данко и отрицательного Ларру. Геройромантик либо гибнет как Данко либо замыкается в своем страдании и одиночестве отвергнутый обществом против условностей которого протестовал как Ларра. Свобода Данко напротив это свобода взять на себя ответственность за коллектив свобода...
81773. Основные мотивы и образы лирики М.Ю.Лермонтова ( на примере 3 – 4 стихотворений). Чтение наизусть и разбор одного стихотворения 34.41 KB
  Мотив одиночества возникает у Л. в трактовку темы одиночества это прежде всего его абсолютный и глубоко личный характер связанный с неприятием лермонтовским героем мира коренных основ миропорядка. В этой благодарности за все чем я обманут в жизни был обнажается двойственная природа лермонтовского одиночества; враждебный человеку мир с отъединенностью от врагов и друзей и волевое гордое непримиренное Я поэта не желающее пойти на какойлибо компромисс с этим миром ни перед чем не останавливающееся в противостоянии ему...
81774. Сатирическое мастерство М. А. Булгакова 32.21 KB
  Удивительный талант Михаила Афанасьевича Булгакова позволяет ему следуя традициям писателейсатириков XIX века использовать этот художественный прием в своих произведениях Примером таких сатирических произведений могут служить повести Роковые яйца и Собачье сердце такой же прием использует автор и в своем романе Мастер и Маргарита . В основе повести Собачье сердце рискованный эксперимент. Отсюда ирония звучащая на страницах повести. Самым ярким представителем этой жизни на страницах повести является Швондер который норовит немедленно...
81775. Роль отцовского завета в судьбах героев произведений отечественной классики 19 века 33.3 KB
  Главный герой Петр Гринев отправляясь на службу получает наказ от отца: Прощай Петр. Петр Гринев являясь главным участником событий повествователеммемуаристом следует завету своего отца. Сын своего отца честного служаки времен Елизаветы который ушел в отставку чтобы не присягать Екатерине продолжает традиции своей семьи построенных на любви к ближним уважении к родителям любви к своей Родине и с честью выходит из всех испытаний. Главная героиня романа Маша Миронова дочь бедных дворян бесприданница олицетворение любви и...
81776. Художественные приемы создания образа Печорина в романе М. Лермонтова «Герой нашего времени» 47.87 KB
  Образ Печорина одно из главных открытий Лермонтова. Изображению и раскрытию образа Печорина как героя особой исторической эпохи и подчинена своеобразная композиционносюжетная структура романа. Одна представляет собою объективное повествование о Печорине извне в записках странствующего офицера Бэла Максим Максимыч Предисловие к Журналу Печорина другая субъективноисповедальное самораскрытие героя изнутри в его Журнале Тамань Княжна Мери Фаталист .
81777. Символизм как литературное направление. Анализ стихотворения одного из поэтов-символистов 47.33 KB
  Бальмонта Ю. В поэтических формулах Бальмонта Сологуба Гиппиус Мережковского отрицается истинность реального мира объявляемого лишь комплексом ощущений творцахудожника: . Бальмонта М. В 90х годах вышли сборники его стихотворений: Под северным небом 1894 В безбрежности 1895 Тишина 1897; в 900е годы в период творческого взлета Бальмонта Горящие здания 1900 Будем как солнце 1903 Только любовь 1903.