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


 

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

61250. WHO (World Health Organization) 26.03 KB
  WHO was founded in 1948. In 1946 the United Nations held an International Health Conference in New York. There the Constitution of WHO was signed by 61 countries. Now-there are 150 member-states. Membership is open to all countries.
61252. Форматування диску 16.79 KB
  Мета: Теоретичні та практичні аспекти форматування диску. Програмне забезпечення для виконання форматування. Форматування диску це запис на диск певної службової інформації для забезпечення зручної і надійної роботи з інформацією що повинна зберігатися на диску.
61253. Времена года. Погода 20.02 KB
  Цель урока: вывести учащихся на творческий уровень владения темой (свободное владение лексическим и грамматическим материалом в рамках пройденной темы).
61256. Современный урок истории и требования к нему. Ивана III - Государь всея Руси 36.56 KB
  Цель урока: проследить процесс завершения объединения Северо-Восточной Руси вокруг Москвы; раскрыть историческое значение свержения ига золотоордынских ханов. Правление Ивана III. III. Правление Ивана III.
61257. Правила чтения английских слов 29.48 KB
  Слово name похоже на русское наименование, но переводится имя. Такие похожие слова будут нам опорой в запоминании новых английских слов. Их мы назовем опорными.