sc.next() 和 sc.nextLine() 的性能

问题描述 投票:0回答:0

我在 Hackerrank 上解决这个问题。我必须对大量数字进行排序的地方。所以我所做的是使用 collection.sort 方法并使用自定义比较器对数组进行排序。所以我的比较方法实际上是比较字符串,因为我不能使用 int 或 double 因为数字范围更大。我注意到的是,当我使用 sc.nextLine() 进行扫描时,它并没有通过所有测试用例。但是当我使用 sc.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);


}
java string java.util.scanner
© www.soinside.com 2019 - 2024. All rights reserved.