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 я виконав умови поставленого завдання. Результат роботи відповідає умові задачі. В роботі я використав та реалізував клас колекції.


 

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

21550. Зигзаг-машины 7.3 MB
  Принципиальное отличие от стачивающих машин в том что зигзагмашины Имеют специальный дополнительный механизм отклонения иглы в направлении поперёк строчки Оснащены челноком увеличенного объёма вследствие увеличения нити в стежке Располагают челночный вал вдоль строчки что необходимо для отклонения иглы поперёк строчки. На рисунке 1 показаны параметры простейших зигзагстрочек: а двухукольного зигзага и б четырёхукольного для усиленного стачивания где tи величина отклонения иглы при прокладывании стежка tИ шаг подачи...
21551. Машины цепного переплетения ниток 1.22 MB
  1 Общая характеристика машин цепного стежка. В связи с появлением нетрадиционных материалов для пошива а также с тенденцией автоматизации основных и вспомогательных операций спрос на машины цепного стежка неизменно высок. Преимущества машин цепного стежка: Уменьшенное истирание верхней нити при подаче в машину вследствие отсутствия операции обвода её вокруг шпуледержателя. Недостатки машин цепного стежка: повышенная распускаемость строчки вследствие открытости переплетения и существенное увеличение расхода ниток в 16 23 раза на к...
21552. Устройство машины типа ЭЗМ с пластинчатым ножом 2.53 MB
  Абалкин ЛИ 1 Устройство машины типа ЭЗМ с пластинчатым ножом. 11 дана принципиальная схема этой машины на которой обозначено: Трёхфазный электродвигатель Кривошип с противовесом Шатун в верхней головке которого шариковый подшипник Корпус из пластика или алюминия Ползун в направляющих Пластинчатый нож закреплённый в ползуне Платформа машины Ролики на игольчатых подшипниках 4 шт. Паспортные данные машины ЭЗМ316 Высота настила до 16 см Частота вращения кривошипа n = 2700 об мин Ход ножа...
21553. Устройство механизма иглы машины КУР - 31 4.16 MB
  Устройство механизма иглы машины КУР 31. Технологическое назначение механизма ввести верхнюю нить в материалы и образовать петлюнапуск. Кинематическое назначение механизма преобразовать вращение главного вала в возвратнопоступательное движение игловодителя На рисунке 1 дана пространственная структурная схема механизма иглы машины ряда КУР31. 8 иглодержатель 9 игловодитель 10 челнок К1 и К2 калибры для выполнения регулировок механизма А отверстие в рукаве для калибра К1 l эль длина калибра К2.
21554. Международные валютно-кредитные и финансовые отношения 115.5 KB
  Первоначально возникла национальная валютная система это форма организации валютных отношений страны сложившаяся исторически и закрепленная национальным законодательством а так же обычаями международного права. На национальную валютную систему возлагается ряд функций: формирование и использование валютных ресурсов; обеспечение внешнеэкономических связей страны; обеспечение оптимальных условий функционирования национального хозяйства. Региональная валютная система это форма организации валютных отношений ряда государств...
21555. Международные экономические организации 90 KB
  Необходимость регулирования мировой экономики на межгосударственном уровне Интернационализация хозяйственной жизни рост взаимозависимости между странами а также возникновение глобальных проблем объективно предопределяют необходимость активного сознательного регулирования мирового хозяйства. В период между двумя мировыми войнами не было широкого распространения межгосударственного регулирования мировой экономики. При голосовании принципиальных вопросов США могли контролировать принятие решений ибо обладали большим количеством голосов в...
21556. Международный рынок услуг 221 KB
  Международный рынок услуг. Международный рынок услуг. План: Сущность и сегменты международного рынка услуг. Особенности формирования и развития международного рынка услуг.
21558. Ценообразование в международной торговле 187.5 KB
  План: Определение мировой цены и объемов торговли Распределение выигрыша от международной торговли Сущность и основные виды мировых цен Условия торговли конъюнктура мирового рынка Международное ценообразование это формирование цен за пределами страны где находится предприятие производитель товара. Распределение выигрыша от международной торговли как внутри страны так и между странами в конечном итоге определяется тем на каком уровне устанавливаются цены на те товары которыми страны торгуют между собой и каковы объемы торговли....