Страница 1 из 1

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

Добавлено: 05.02.2013 11:26
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 нерационален и лишает смысла весь огород (т.е. можно было сразу массив продуктов передавать).

Вопросов, собственно, два: КАК и НАХУЯ?!

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

Добавлено: 05.02.2013 20:38
Гость
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?

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

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

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

Но это неважно - простейший паттерн компарабла в жабе криво реализован и это факт.

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

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

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