Добавлено четвёртое задание ЛР2 - сортировка списка
This commit is contained in:
parent
48ac144239
commit
2233d948a0
@ -13,7 +13,7 @@ public class LR_2 implements ILabRab {
|
|||||||
"Копирование и сравнение массивов",
|
"Копирование и сравнение массивов",
|
||||||
"Двумерный массив строк",
|
"Двумерный массив строк",
|
||||||
"Эллипсы и круги. Массив",
|
"Эллипсы и круги. Массив",
|
||||||
"4",
|
"Эллипсы и круги 2. Сортировка списка",
|
||||||
"5"
|
"5"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ public class LR_2 implements ILabRab {
|
|||||||
LR_2_Tasks.getInstance().task3();
|
LR_2_Tasks.getInstance().task3();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
LR_2_Tasks.getInstance().task4();
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package tse.lr2;
|
package tse.lr2;
|
||||||
|
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -39,6 +43,25 @@ public class LR_2_Tasks {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void task4() {
|
||||||
|
makeObjects();
|
||||||
|
ArrayList<Ellipse> ellipses = new ArrayList<>();
|
||||||
|
ellipses.add(ellipse1);
|
||||||
|
ellipses.add(ellipse2);
|
||||||
|
ellipses.add(ellipse3);
|
||||||
|
ellipses.add(circle1);
|
||||||
|
ellipses.add(circle2);
|
||||||
|
printList(ellipses);
|
||||||
|
System.out.println("Collections.sort");
|
||||||
|
ArrayList<Ellipse> copy = (ArrayList<Ellipse>) ellipses.clone();
|
||||||
|
Collections.sort(copy, squareComparator);
|
||||||
|
printList(copy);
|
||||||
|
System.out.println("user sort");
|
||||||
|
copy = (ArrayList<Ellipse>) ellipses.clone();
|
||||||
|
userSort(copy, squareComparator);
|
||||||
|
printList(copy);
|
||||||
|
}
|
||||||
|
|
||||||
private void makeObjects() {
|
private void makeObjects() {
|
||||||
ellipse1 = new Ellipse(
|
ellipse1 = new Ellipse(
|
||||||
new Point(2, 2), new Point(8, 2),
|
new Point(2, 2), new Point(8, 2),
|
||||||
@ -55,4 +78,35 @@ public class LR_2_Tasks {
|
|||||||
|
|
||||||
point1 = new Point(3, 3);
|
point1 = new Point(3, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void printList(List<Ellipse> list) {
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
Ellipse ellipse = list.get(i);
|
||||||
|
System.out.println( String.format("%2d. %f", i + 1, ellipse.getSquare()) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void userSort(List<Ellipse> list, Comparator<Ellipse> comparator) {
|
||||||
|
final int size = list.size();
|
||||||
|
for (int i = 0; i < size - 1; i++) {
|
||||||
|
int min = i;
|
||||||
|
for (int j = i + 1; j < size; j++) {
|
||||||
|
if (comparator.compare(list.get(j), list.get(min)) < 0) {
|
||||||
|
min = j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ellipse temp = list.get(i);
|
||||||
|
list.set(i, list.get(min));
|
||||||
|
list.set(min, temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Comparator<Ellipse> squareComparator = new Comparator<Ellipse>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(Ellipse e1, Ellipse e2) {
|
||||||
|
return Double.compare(e1.getSquare(), e2.getSquare());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user