```java
public static void main(String[] args) {
System.out.println("请输入一串整数:");
Scanner sc = new Scanner(System.in);
Vector vector = new Vector();
String tmp = sc.nextLine();
String[] strings = tmp.split(" ");
for(String x:strings){
var add = vector.add(Integer.parseInt(x));
}
Collections.sort(vector, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(1/o1-1/o2<0){
return 1;
}
else if(1/o1-1/o2>0) {
return -1;
}
return 0;
}
});
System.out.println("按倒数排列:\n"+vector);
}
```
虽然你没说,我猜是除0错误,直接两个数比较大小不好?偏要用分数来吗
你直接return0 得了,除非 o1、o2 是1,不然你那两if都不成立
这个var看懵了,这不是js里面的么
兄弟你搞复杂了,比较用Integer的compareTo比较大小方法就可以了,A.compareTo(B) 如果A小于、等于或大于B,则分别返回负整数、零或正整数。
另外报错是因为这行代码var add = vector.add(Integer.parseInt(x)); java中没有var类型,可以改成boolean add = vector.add(Integer.parseInt(x)); 更简洁一点
改成vector.add(Integer.parseInt(x));
public static void main(String[] args) {
System.out.println("请输入一串整数:");
Scanner sc = new Scanner(System.in);
Vector<Integer> vector = new Vector<>();
String tmp = sc.nextLine();
String[] strings = tmp.split(" ");
for(String x:strings){
vector.add(Integer.parseInt(x));
}
Collections.sort(vector, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);//倒序
//return o1.compareTo(o2);//正序
}
});
System.out.println("按倒数排列:\n"+vector);
}