62,621
社区成员
发帖
与我相关
我的任务
分享import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class CollectionsDemo2
{
public static void main(String[] args){
demo1();
}
public static void demo1(){
List<String> list=new ArrayList<String>();
list.add("ags");
list.add("edn");
list.add("afdb");
list.add("adsn");
list.add("ab");
System.out.println(list);
mySort(list);
//Collections.sort(list);
System.out.println(list);
mySort2(list,new ComByLen());//Collections.sort(list,new ComByLen());
System.out.println(list);
}
public static <T> void mySort2(List<T> list,Comparator<? super T> com){
for(int i=0;i<list.size()-1;i++){
for(int j=i;j<list.size();j++){
if(com.compare(list.get(i),list.get(j))>0){
T temp=list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
}
public static<T extends Comparable<? super T>> void mySort(List<T> list){
for(int i=0;i<list.size()-1;i++){
for(int j=i;j<list.size();j++){
if(list.get(i).compareTo(list.get(j))>0){
T temp=list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
}
}
class ComByLen<String> implements Comparator<String>
{
public int compare(String s1,String s2){
int temp=s1.length()-s2.length();
return temp==0?s1.compareTo(s2):temp;
}
}
---------- JAVAC ----------
CollectionsDemo2.java:52: 错误: 找不到符号
int temp=s1.length()-s2.length();
^
符号: 方法 length()
位置: 类型为String的变量 s1
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
CollectionsDemo2.java:52: 错误: 找不到符号
int temp=s1.length()-s2.length();
^
符号: 方法 length()
位置: 类型为String的变量 s2
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
CollectionsDemo2.java:53: 错误: 找不到符号
return temp==0?s1.compareTo(s2):temp;
^
符号: 方法 compareTo(String)
位置: 类型为String的变量 s1
其中, String是类型变量:
String扩展已在类 ComByLen中声明的Object
注: CollectionsDemo2.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
3 个错误
输出完成 (耗时 1 秒) - 正常终止