Производительность s c .next () и s c .nextLine () - PullRequest
0 голосов
/ 14 марта 2020

Я решал эту проблему на Хакерранке. Где я должен был сортировать большие числа. Поэтому я использовал метод collection.sort и использовал собственный компаратор для сортировки массива. так что мой метод сравнения фактически сравнивал строку, так как я не могу использовать int или double, поскольку диапазон чисел был больше. Я заметил, что когда я использовал s c .nextLine () для сканирования, он не прошел все тестовые случаи. Но когда я использовал s c .next (), он прошел все тестовые случаи. Может кто-нибудь сказать мне причину этого.

    public static void main(String[] args) {
     Scanner sc=new Scanner(System.in);
     int x=sc.nextInt();sc.nextLine();

     List<String> list=new ArrayList();
     for(int i=0;i<x;i++){
         list.add(sc.next());
     }
    Collections.sort(list, (s1,s2) ->{
        if(s1.length()==s2.length())
           return s1.compareTo(s2);
           return s1.length()>s2.length()?1:-1;
                 } 
           );
     for(String str:list)
    System.out.println(str);


}
...