У меня возникла проблема с сортировкой ArrayList
с использованием Comparator
s. Ниже приведен мой основной класс и класс для Card
.Сортировка ArrayList с использованием компараторов, но его результат не отображается
метод Компаратор в Card
классе:
import java.util.Comparator;
public class Card implements Comparable <Card>{
// the getter and toString method are define here though.
public static Comparator<Card> sortingHeight = new Comparator<Card>(){
@Override
public int compare(Card s1, Card s2){
return s2.getHeight()-s1.getHeight();
}
};
public static Comparator<Card> sortingSpeed = new Comparator<Card>(){
@Override
public int compare(Card s1, Card s2){
return s1.getSpeed()-s2.getSpeed();
}
};
public static Comparator<Card> sortingFighting = new Comparator<Card>(){
@Override
public int compare(Card s1, Card s2){
return s2.getFightingSkills()-s1.getFightingSkills();
}
};
public static Comparator<Card> sortingTitle = new Comparator<Card>(){
@Override
public int compare(Card s1, Card s2){
String title1 = s1.getTitle();
String title2 = s2.getTitle();
return title1.compareTo(title2);
}
};
}
Основной метод:
import java.util.Scanner;
import java.util.Collections;
import java.util.ArrayList;
public static void main(String[] args) {
while(!false) {
Scanner scanner = new Scanner(System.in);
System.out.println("Title.............6" +
"\nHeight............7 " +
"\nSpeed.............8" +
"\nFightingSkill.....9" +
"\nBack..............0"
);
System.out.print("Enter your choice: ");
int userEnter1 = scanner.nextInt();
if (userEnter1 == 6)
if(userEnter1 == 7)
Collections.sort(ArrayList, Card.sortingHeight);
else if (userEnter1 == 8)
Collections.sort(ArrayList, Card.sortingSpeed);
else if (userEnter1 == 9)
Collections.sort(ArrayList, Card.sortingFighting);
else if (userEnter1 == 0)
increase--;
else Collections.sort(ArrayList, Card.sortingTitle);
}
Это компиляция, но никакого результата не будет показывать, когда пользователь вводит входные данные.