Инетерсное из классики жабы

Ответить
Аватара пользователя
Golem
Сообщения: 2060
Зарегистрирован: 07.02.2012 11:16

Инетерсное из классики жабы

Сообщение Golem »

Дано:
класс Produkt реализующий интерфейс Comparable по сравнению двух продуктов через produktnr.

Здача:
Нужно сделать сортировку списка вида:

Код: Выделить всё

public static void bubbleSort(Comparable[] produkte) {
...
}
Уточнение:
так как необходимо сортировать только продукты, а Comparable is a raw type, вводится следующее уточнение:

Код: Выделить всё

public static void bubbleSort(Comparable<Produkt>[] produkte) {
...
}
Проблемe:

1. метод все равно хавает "сырой" Comparable[] в качестве аргумента, в котором могут быть любые объекты, т.е. фактически уточнение никакой роли не играет.

2. Два объекта типа Comparable<Produkt> не могут быть сравнены через compareTo, а их каст в Produkt нерационален и лишает смысла весь огород (т.е. можно было сразу массив продуктов передавать).

Вопросов, собственно, два: КАК и НАХУЯ?!
- Учение Маркса всесильно, потому что оно верно!
- А почему оно верно?
- Потому что гладиолус!

(c) Роберт Галантович Нефтянников, почетный зиц-председатель казахстанского общества общепризнанных авиационных экспертов мирового масштаба.
Аватара пользователя
Гость

Re: Инетерсное из классики жабы

Сообщение Гость »

Golem писал(а):Дано:
класс Produkt реализующий интерфейс Comparable по сравнению двух продуктов через produktnr.

Здача:
Нужно сделать сортировку списка вида:

Код: Выделить всё

public static void bubbleSort(Comparable[] produkte) {
...
}
Уточнение:
так как необходимо сортировать только продукты, а Comparable is a raw type, вводится следующее уточнение:

Код: Выделить всё

public static void bubbleSort(Comparable<Produkt>[] produkte) {
...
}
Проблемe:

1. метод все равно хавает "сырой" Comparable[] в качестве аргумента, в котором могут быть любые объекты, т.е. фактически уточнение никакой роли не играет.

2. Два объекта типа Comparable<Produkt> не могут быть сравнены через compareTo, а их каст в Produkt нерационален и лишает смысла весь огород (т.е. можно было сразу массив продуктов передавать).

Вопросов, собственно, два: КАК и НАХУЯ?!
Действительно, нахуя имплементить интерфейс Comparable, если не собираешься вызывать Array.sort(Prouct[]) или запись в set/map?
Аватара пользователя
Golem
Сообщения: 2060
Зарегистрирован: 07.02.2012 11:16

Re: Инетерсное из классики жабы

Сообщение Golem »

Гость писал(а):Действительно, нахуя имплементить интерфейс Comparable, если не собираешься вызывать Array.sort(Prouct[]) или запись в set/map?
Во-первых, была поставлена именно такая учебная задача.

Во-вторых, нужно было свою сортировку реализовать.

Но это неважно - простейший паттерн компарабла в жабе криво реализован и это факт.
- Учение Маркса всесильно, потому что оно верно!
- А почему оно верно?
- Потому что гладиолус!

(c) Роберт Галантович Нефтянников, почетный зиц-председатель казахстанского общества общепризнанных авиационных экспертов мирового масштаба.
vovan
Сообщения: 1521
Зарегистрирован: 22.09.2011 13:21
Род занятий: C++

Re: Инетерсное из классики жабы

Сообщение vovan »

Golem писал(а): Во-первых, была поставлена именно такая учебная задача.
Опять учишься...

Зайди на тематический форум, там быстро ответят.
Ответить