Sid*_*ril 1 java sorting list arraylist
我目前正在学习如何使用Java中的列表.我通过使用Collections.sort()方法遇到了列表中的字符串排序,并且工作正常.但是,当我创建用户定义的数据类型时,它不会排序并给出错误 -
"找不到合适的排序方法(List)方法Collections.sort(List,Comparator)不适用(无法从参数实例化,因为实际和形式参数列表长度不同)方法Collections.sort(List)不适用(推断类型不符合推断的声明边界:Child bound(s):Comparable)其中T#1,T#2是type-变量:T#1 extends在方法sort(List,Comparator)中声明的Object T#2 extends在方法sort(List)中声明的Comparable"
如何为用户定义的类型排序元素?
这是代码 -
package works;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Collections;
class Child
{
private String name;
public Child(String name)
{
this.name=name;
}
@Override
public String toString()
{
return name;
}
}
class LOL
{
void Meth()
{
Child s1 = new Child("Hi");
Child s2 = new Child("Bye");
Child s3 = new Child("And");
List<Child> f1 = Arrays.asList(s1,s2,s3);
System.out.println(f1);
System.out.println();
Collections.sort(f1); // This line is the erroneous line.
}
}
public class SortColl
{
public static void main(String X[])
{
LOL l = new LOL();
l.Meth();
}
}
Run Code Online (Sandbox Code Playgroud)
Comparable在Child课堂上实施
class Child implements Comparable<Child>{
private String name;
public Child(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
@Override
public int compareTo(Child child) {
return name.compareTo(child.name);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9198 次 |
| 最近记录: |