在java中将整数数组传递给Compariable 公共类堆栈{ 公共静态void main(字符串[]args){ //字符串[] //姓名={“新闻”、“询问”、“男人”、“querty”、“郎”、“爱”、“波比”、“斑马”、“你好”}; int[]name={3153438776,90123,33};//显示一个错误 选择秒=新选择(); 第二节分类(名称); for(int i=0;i
我能够在选择类sort()方法中将字符串数组传递给Comparable[],并对其进行排序,但将int数组传递给sort()会显示Comparable[]不适用于int[]的错误!!我需要用相同的代码对所有类型的数据进行排序!请帮帮我 使用在java中将整数数组传递给Compariable 公共类堆栈{ 公共静态void main(字符串[]args){ //字符串[] //姓名={“新闻”、“询问”、“男人”、“querty”、“郎”、“爱”、“波比”、“斑马”、“你好”}; int[]name={3153438776,90123,33};//显示一个错误 选择秒=新选择(); 第二节分类(名称); for(int i=0;i,java,sorting,comparable,Java,Sorting,Comparable,我能够在选择类sort()方法中将字符串数组传递给Comparable[],并对其进行排序,但将int数组传递给sort()会显示Comparable[]不适用于int[]的错误!!我需要用相同的代码对所有类型的数据进行排序!请帮帮我 使用Integer而不是intint不是一个类,没有compareTo方法。使用Integer而不是intint不是一个类,没有compareTo方法。int是一个基本类型,而Comparable是一个引用类型。改为使用引用类型Integer,它是Comparab
Integer
而不是int
int
不是一个类,没有compareTo方法。使用Integer
而不是int
int
不是一个类,没有compareTo方法。int
是一个基本类型,而Comparable
是一个引用类型。改为使用引用类型Integer
,它是Comparable
int
的子类型,而Comparable
是一种基本类型,而Comparable
是一种引用类型。改为使用引用类型Integer
,它是Java中Comparable
的一个子类型,数组是协变的,这意味着如果类C
实现接口I
,那么C[]
可以被视为I[]
。另一方面,String
类实现了Comparable
接口,因此String
s的数组可以看作是Comparable
s的数组,但是int[]
是一个基元int
的数组,并且int
不实现任何接口。在Java中,数组是协变的,这意味着如果类C
实现接口I
,那么C[]
可以被视为I[]
。另一方面,String
类实现了Comparable
接口,因此String
s的数组可以看作是Comparable
s的数组,但是int[]
是一个基元int
的数组,并且int
不实现任何接口。您应该使用Integer[]您应该使用Integer而不是int。您应该使用Integer而不是int。您应该使用Integer而不是int。字符串
实现了类似的接口int
不是对象,也不是。请使用整数对象,而不是原语intString
实现可比较的接口int
不是对象,所以不是。请使用整数对象,而不是原语int
public class Stack {
public static void main(String[] args) {
// Strings[]
// names={"news","ask","man","querty","lang","love","poppye","zebra","hello"};
int[] names = { 31, 5343, 8776, 90, 123, 33 };// shows me an error
Selection sec = new Selection();
sec.sort(names);
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
class Selection {
int valNow;
public void sort(Comparable[] names) {
for (int i = 0; i < names.length; i++) {
boolean swapOn = false;
int min = -200;
int pointer = 0;
for (int j = i + 1; j < names.length; j++) {
if (less(names[i], names[j])) {
if (valNow > min) {
min = valNow;
pointer = j;
System.out.println("Pointer:" + pointer + " "
+ "Highest:" + min);
swapOn = true;
}
}
}
if (swapOn) {
swap(names, i, pointer);
}
}
}
public void swap(Comparable[] name, int x, int y) {
System.out.println("Gonna swap:" + name[x] + " and " + name[y]);
Comparable inter = name[x];
name[x] = name[y];
name[y] = inter;
}
public boolean less(Comparable one, Comparable two) {
boolean send = false;
valNow = one.compareTo(two);
System.out.println(valNow);
if (valNow > 0) {
send = true;
} else if (valNow == 0) {
send = true;
}
return send;
}
}