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


 

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

27388. Методика преподавания русского языка 36 KB
  Как и любая другая наука методика русского языка имеет свой предмет. Методика русского языка призвана изучить закономерности формирования умений и навыков в области языка усвоения систем научных понятий по грамматике и по другим разделам науки о языке. Методика русского языка изучает уровни знаний умений и навыков учащихся на разных ступенях обучения выясняет причины успехов или неудач в обучении исследует типичные ошибки речевые орфографические и пр.
27389. Место курса «Русский язык» в учебном плане 76 KB
  Это обусловлено тем что русский язык является государственным языком Российской Федерации родным языком русского народа средством межнационального общения. Осознание единства звукового состава слова и его значения. Установление числа и последовательности звуков в слове. Сопоставление слов различающихся одним или несколькими звуками.
27390. Коммуникативно-познавательная основа русского языка 80 KB
  Коммуникативный принцип предусматривает: осмысление и реализацию основной функции языка быть средством общения; развитие умения ориентироваться в ситуациях общения понимать цель и результат общения собеседников контролировать и корректировать свою речь в зависимости от ситуации общения; знакомство с различными системами общения устными и письменными речевыми и неречевыми; формирование представления о тексте как результате продукте речевой деятельности; развитие у учащихся желания потребности создавать собственные тексты...
27391. Психолого-педагогические основы методики обучения грамоте 69 KB
  Что же собой представляет метод обучения В литературе существуют различные подходы к определению этого понятия: 1это способ деятельности учителя и учащихся; 2совокупность приемов работы; 3путь по которому учитель ведет учащихся от незнания к знанию; 4 система действий учителя и учащихся и т.Овладение грамотой первый этап школьного обучения детей в течение которого у них должны быть сформированы начальные навыки чтения и письма. Перекодировка о которой сказано выше является главным предметом методики обучения грамоте поэтому...
27392. В методике выделяют три этапа формирования навыка чтения: аналитический, синтетический и этап автоматизации 48 KB
  Аналитический этап характеризуется тем что все три компонента процесса чтения в деятельности чтеца разорваны и требуют от ребенка отдельных усилий по произведению конкретных операций: увидеть гласную букву соотнести ее со слогомслиянием подумать куда надо причитать буквы вне слияния озвучить каждый увиденный графический слог т. Однако учитель должен помнить что каждому ребенку свойствен свой темп в развитии вообще и в овладении навыком чтения в частности.Синтетический этап предполагает что все три компонента чтения синтезируются т.
27394. Принципы русской орфографии 35 KB
  Морфологическийединообразие написания морфем все случаи безуд гл оглушеине или озвончение согл традиционное произношение Решение орфогрфической задачи по морфологическому принципу состоит в том чтобы реюбенок зналд образ слова кот искажен фонетически 2. Традиционный Относятся все лсоварные слова правописание жиши чаща чущуИспользовать принципы запоминания 4. Принцип дифференциации значений лексический грамматический смысловой КомпаниякампанияподжегподжогСлова омофоны 5. Принцип аббревиации Практически не изуч в нач школе...
27395. Морфемика – изучает состав слова 96 KB
  Развитие интереса детей к языку через состав слова. Выяснение как сделаны слова в р. Вопрос о причинах ошибок которые допускают дети при разборе слова по составу специально изучали психологи Л.
27396. Методика обучения морфологии в начальных классах 69 KB
  Во II классе вводятся понятия частей речи сообщаются некоторые признаки частей речи в III и IV классах склонение имен существительных прилагательных спряжение глаголов значения форм частей речи вплоть до значений падежей временных и личных форм.; местоимения притяжательные указательные вопросительные возвратное; наречия времени места образа действия. Слова категории состояния при разборе по частям речи квалифицируются как наречия.