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


 

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

29881. Сущность и практика деятельности негосударственных пенсионных фондов 13.8 KB
  Негосударственный пенсионный фонд НПФ особая организационноправовая форма некоммерческой организации социального обеспечения исключительными видами деятельности которой являются[1]: деятельность по негосударственному пенсионному обеспечению участников НПФ в соответствии с договорами негосударственного пенсионного обеспечения НПО; деятельность в качестве страховщика по обязательному пенсионному страхованию в соответствии с Законом Об обязательном пенсионном страховании в Российской Федерации[2] и договорами об обязательном пенсионном...
29882. Мировая, европейская, национальная валютные системы и их взаимодействие на современном этапе 34 KB
  Валютная система это форма орга низации и регулирования валютных отношений закрепленная национальным законодательством или межгосударственными соглашениями. Мировая валютная система это совокупность экономических отношений в мировой хозяйственной сфере связанных с функционированием валюты. Развитие мировой валютной системы Международная валютная система мировая валютная система мировая денежная система всех стран в рамках которой формируются и используются валютные ресурсы и осуществляется международный платежный оборот. Мировая...
29883. Государственное регулирование рынка страхования 20.39 KB
  Государственное регулирование рынка страхования Страховой рынок это особая социальноэкономическая среда определенная сфера денежных отношений где объектом куплипродажи выступает страховая защита формируется предложение и спрос на нее. Страховой рынок можно рассматривать также: как форму организации денежных отношений по формированию и распределению страхового фонда для обеспечения страховой защиты общества; как совокупность страховых организаций страховщиков которые принимают участие в оказании соответствующих страховых услуг....
29884. Банкротство предприятий в условиях рыночных отношений 15.96 KB
  Реальное банкротство организации характеризующееся неспособностью предприятия восстановить свою платежеспособность в силу реальных потерь собственного и заемного капитала. Санирующими мероприятиями могут быть проведение конкурсного производства ликвидация организации или реорганизация. Временное условное банкротство которое характеризуется таким состоянием неплатежеспособности организации которое вызвано существенной просрочкой ее кредиторской задолженности а также большим размером дебиторской задолженности затовариванием готовой...
29885. Антиинфляционная политика России на современном этапе 15.07 KB
  Антиинфляционная политика России на современном этапе Преодоление инфляции остается одной из главных задач антикризисной стратегии в Российской Федерации. При ее решении необходимо учитывать причины и последствия инфляции кто при этом несет основные тяготы и потери а также влияние разрабатываемых мер на другие элементы антикризисной стратегии прежде всего на производство и занятость. Уменьшение темпов инфляции до относительно безопасного уровня 1520 в год...
29886. Обязательное страхование в РФ 12.89 KB
  Обязательное страхование в РФ Обязательное страхование в РФ определяется федеральными законами по конкретным видам обязательного страхования. Обязательное страхование подразделяется на такие виды как страхование за счет страхователей сюда относится страхование сельскохозяйственных животных; строений; личное страхование пассажиров железнодорожного воздушного внутреннего водного морского и автомобильного транспорта; а также обязательное имущественное и личное госстрахование. Лично обязательное страхование объектами определяет имущественные...
29887. Кредитные организации как социальные институты общества 18.69 KB
  Кредитные организации как социальные институты общества Кредитная организация это юридическое лицо которое для извлечения прибыли как основной цели своей деятельности на основании специального разрешения лицензии Банка России имеет право осуществлять банковские операции. Кредитной организации запрещается заниматься производственной торговой и страховой деятельностью. Кредитные организации подразделяются на две группы: банки; небанковские кредитные организации. Банк Банки это такие кредитные организации которые имеют исключительное...
29888. Сущность и функции кредита. Их признаки и содержание. Законы кредита 36.5 KB
  Сущность и функции кредита. Законы кредита. Кредитные отношения могут выражаться в разных формах кредита коммерческий кредит банковский кредит и др. Сущность же кредита всегда устойчива и неизменна: кредит это экономические отношения между кредитором и заемщиком по поводу возвратного движения стоимости в товарной или денежной форме.
29889. Ценообразование в условиях смешанной экономики. Равновесная цена. Функции цен 17.39 KB
  Равновесная цена. Наряду с прямым установлением и регулированием цен государственные органы осуществляют контроль за ценами. Равновесная цена. Равнове́сная цена или сбалансированная цена цена на конкурентном рынке при которой количество товаров и услуг которые желают купить потребители абсолютно соответствует количеству товаров и услуг которые производители желают предложить.