Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我总是返回1作为比较,但我没有找到ans import java.util.*; 公共类{ 静态扫描仪sc=新扫描仪(System.in); 静态整数a[]=新整数[3]; 公共静态void main(字符串[]args){ int t=sc.nextInt(); 而(t-->0){ int n=3; 对于(int i=0;i2.5 3.7.2.5=>7.5.2_Java_Sorting_Arraylist_Compare_Arr - Fatal编程技术网

我总是返回1作为比较,但我没有找到ans import java.util.*; 公共类{ 静态扫描仪sc=新扫描仪(System.in); 静态整数a[]=新整数[3]; 公共静态void main(字符串[]args){ int t=sc.nextInt(); 而(t-->0){ int n=3; 对于(int i=0;i2.5 3.7.2.5=>7.5.2

我总是返回1作为比较,但我没有找到ans import java.util.*; 公共类{ 静态扫描仪sc=新扫描仪(System.in); 静态整数a[]=新整数[3]; 公共静态void main(字符串[]args){ int t=sc.nextInt(); 而(t-->0){ int n=3; 对于(int i=0;i2.5 3.7.2.5=>7.5.2,java,sorting,arraylist,compare,arr,Java,Sorting,Arraylist,Compare,Arr,嗨,我能解决我的问题。compare tor在java中是如何工作的? 输入: 1. 5 2 7 输出 5 2 7 为什么不是7.5.2? 如果我们返回的值大于1,我将得到什么。 1.5 2.5.2(由于一次返回)=>2.5 3.7.2.5=>7.5.2所以你对这个问题的理解是错误的 从名称本身,我们可以假设它需要比较一些东西,对吗?但在您的代码中,您并没有比较任何东西,而是在comparator中打印值,这是错误的 如果检查比较器的参数,可以看到两个整数正在传递给它。这些整数实际上是数组元素。

嗨,我能解决我的问题。compare tor在java中是如何工作的? 输入: 1. 5 2 7 输出 5 2 7 为什么不是7.5.2? 如果我们返回的值大于1,我将得到什么。 1.5 2.5.2(由于一次返回)=>2.5
3.7.2.5=>7.5.2

所以你对这个问题的理解是错误的

从名称本身,我们可以假设它需要比较一些东西,对吗?但在您的代码中,您并没有比较任何东西,而是在comparator中打印值,这是错误的

如果检查比较器的参数,可以看到两个整数正在传递给它。这些整数实际上是数组元素。你需要比较一下那些元素

公共整数比较(整数a、整数b) { if(a
像这样,在main中打印您的数组。它将被分类

你说的是
1>5
5<1
以及
5>5
。很好。您可以将其缩减为一行:
返回整数在使用示例代码的三重反勾格式时要小心。您需要将开头的记号放在它们自己的行上,第一行代码就在下面。您需要始终包含结束标记。如果省略,则会将要遵循的内容(如链接)弄得一团糟。我在你的回答中解决了这两个问题。
import java.util.*;
public class S {
    static Scanner sc = new Scanner(System.in);
    static Integer a[] = new Integer[3];

    public static void main(String[] args) {
        int t = sc.nextInt();
        while (t-- > 0) {
            int n=3;
            for (int i = 0; i < n; i++) {
                a[i] = sc.nextInt();
            }
            Arrays.sort(a,new Sort1());
        }
    }
}
class Sort1 implements Comparator<Integer>
{
    public int compare(Integer a,Integer b)

    {
        for(int a1:S.a){
            System.out.print(a1+" ");
        }
        System.out.println();
        // return a-b;
        return 1;
    }
}