[英]How to sort a two dimensional array using `Comparator` interface?
我需要对以下数组进行排序:
String [][] myArray = {{"John", "3", "10"}, {"Paul", "16","2"},
{"Mike","8","20"}, {"Peter","5","0"}};
放入以下数组:
String [][] myArray = {{"John", "3", "10"}, {"Mike","8","20"},
{"Paul", "16","2"}, {"Peter","5","0"}};
我有两节课。 第一个包含数组,另一个实现Comparator接口。 这是MyArray类:
public class MyArray {
public static void main(String[] args) {
String [][] myArray = {{"John", "3", "10"}, {"Paul", "16","2"},
{"Mike","8","20"},{"Peter","5","0"}};
ByName byName = new ByName();
Arrays.sort(myArray,byName);
}
}
这是ByName类:
import java.util.Comparator;
public class ByName implements Comparator {
public int compare(Object o1, Object o2) {
String name1 = (String)((MyArray) o1)[0]);
String name2 = (String)((MyArray) o2)[0]);
return (name1>name2) ? 1 : -1;
// Here I am confused, how can I compare it, how can I sort my array
// alphabetically by the first element of each element, i.e. by the names.
}
}
您几乎明白了:而不是<
in
return (name1>name2) ? 1 : -1;
使用compareTo()
:
String name1 = ((String[])o1)[0];
String name2 = ((String[])o2)[0];
return name1.compareTo(name2);
您还可以使用类的对象代替二维数组:
import java.util.Comparator;
public class ByName implements Comparator {
public int compare(Object o1, Object o2) {
String name1 = (String)(( o1));
String name2 = (String)((o2));
return (name1>name2) ? 1 : -1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.