Co to jest List of Comparable?

0

Cześć, jestem w trakcie robienia zadania rekrutacyjnego. Niestety nie wiem, co ma zwracać metoda sort. Czy deklaracja metody powinna wyglądać tak:

public List<Comparable<?>> sort(List<Comparable<?>> input)

tak,

public List<Comparable<>> sort(List<Comparable<>> input)

czy tak

public Comparable<BubbleSort> sort(Comparable<BubbleSort> input)

czy jeszcze jakoś inaczej?

zadanie.png

3
public <T>  List<T extends Comparable<?>> sort(List<T extends Comparable<?>> input)

czytasz to jako metoda generyczna z parametrem T
Jako input masz dowolną listę obiektów które dziedziczą/implementują Comparable

0

@aolo23: Ta sygnatura metody jest błędna. Typem przyjmowanym, lub zwracanym powinno być List<Comparable<T>>.

Całość klasy wyglądałaby tak:

public class BubbleSort<T extends Comparable<T>> {
    public List<T> sort(List<T> input) {
      ....
    }
}
1
ms_ napisał(a):

Cześć, jestem w trakcie robienia zadania rekrutacyjnego. Niestety nie wiem, co ma zwracać metoda sort. Czy deklaracja metody powinna wyglądać tak:

public List<Comparable<?>> sort(List<Comparable<?>> input)
(...)

zwracanie ?to zwykle słaby pomysł, bo w ten sposób tracimy konkretny typ i co potem z takim List<Comparable<?>> zrobić? rzutować z powrotem? wątpię, by rekruterowi o to chodziło.

0

@ms_:

```class BubbleSort { public List<Comparable<?>> sort(List<comparable<?>> input) { return input; } } ``

Nie wiem, to twoje zadanie rekrutacyjne :) Myślisz, że chcą sprawdzić, czy potrafisz zaimplementować sortowanie bąbelkowe, czy chcą sprawdzić jak sobie radzisz z obiektowością? W twojej propozycji możesz wrzucić listę jabłek, dostać listę gruszek i nie ma nic co by temu przeszkodziło, o ile będą implementowały interface Comparable.

1

@_13th_Dragon:


    sort(List.of("Celina", "Bartek", "Ala"));

    public List<Comaparable<?>> sort(List<Comparable<?>> input) {

        return List.of(1, 2, 3);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1