我总是返回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
嗨,我能解决我的问题。compare tor在java中是如何工作的? 输入: 1. 5 2 7 输出 5 2 7 为什么不是7.5.2? 如果我们返回的值大于1,我将得到什么。 1.5 2.5.2(由于一次返回)=>2.5我总是返回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中打印值,这是错误的 如果检查比较器的参数,可以看到两个整数正在传递给它。这些整数实际上是数组元素。
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;
}
}