Collections.sort()调用错误
import java.lang.*;import java.util.*;
class ArrayListTest
{
public static void printElements(Collection c)
{
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
public static void main(String[] args)
{
Student s1=new Student(2,"zhangsan");
Student s2=new Student(1,"lisi");
Student s3=new Student(3,"wangwu");
ArrayList<Object> al=new ArrayList<Object>();
al.add(s1);
al.add(s2);
al.add(s3);
Collections.sort(al);
printElements(al);
}
}
class Student implements Comparable
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1:(num==s.num ? 0:-1);
}
public String toString()
{
return "num="+num+","+"name="+name;
}
}
为什么编译错误啊:
说是找不到符号,好想是sort()方法找不到啊。(我的是JDK1.5)
搜索更多相关的解决方案:
sort Collections
----------------解决方案--------------------------------------------------------
怎么回事,没人知道吗,急啊!!!
----------------解决方案--------------------------------------------------------
程序代码:
import java.lang.*;
import java.util.*;
public class ArrayListTest
{
public static void printElements(Collection c)
{
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
public static void main(String[] args)
{
Student s1=new Student(2,"zhangsan");
Student s2=new Student(1,"lisi");
Student s3=new Student(3,"wangwu");
ArrayList<Object> al=new ArrayList<Object>();
al.add(s1);
al.add(s2);
al.add(s3);
Collections.sort((List)al);//参数a1 要向上转为List对像
printElements(al);
}
}
class Student implements Comparable
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1:(num==s.num ? 0:-1);
}
public String toString()
{
return "num="+num+","+"name="+name;
}
}
import java.util.*;
public class ArrayListTest
{
public static void printElements(Collection c)
{
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
public static void main(String[] args)
{
Student s1=new Student(2,"zhangsan");
Student s2=new Student(1,"lisi");
Student s3=new Student(3,"wangwu");
ArrayList<Object> al=new ArrayList<Object>();
al.add(s1);
al.add(s2);
al.add(s3);
Collections.sort((List)al);//参数a1 要向上转为List对像
printElements(al);
}
}
class Student implements Comparable
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1:(num==s.num ? 0:-1);
}
public String toString()
{
return "num="+num+","+"name="+name;
}
}
----------------解决方案--------------------------------------------------------
回复 3楼 lampeter123
版主啊,不行哦。改过之后还是有错:使用了未经检查或不安全的操作。
----------------解决方案--------------------------------------------------------
以下是引用windyfzz在2010-12-10 12:26:53的发言:
版主啊,不行哦。
改过之后还是有错:使用了未经检查或不安全的操作。
ArrayList<Object> al=new ArrayList<Object>();//改为ArrayList<Student> al=new ArrayList<Student>();版主啊,不行哦。
改过之后还是有错:使用了未经检查或不安全的操作。
----------------解决方案--------------------------------------------------------
回复 5楼 lampeter123
额...还是不行哦。若改成又提示:ArrayList<Student> al=new ArrayList<Student>();
则编译出错:使用了未经检查或不安全的操作。
版主啊,再给想想吧。
----------------解决方案--------------------------------------------------------
以下是引用windyfzz在2010-12-13 11:57:14的发言:
额...还是不行哦。
若改成又提示:ArrayList al=new ArrayList();
则编译出错:使用了未经检查或不安全的操作。
版主啊,再给想想吧。
注意: public class ArrayListTest 是公共与文件名ArrayListTest.java一致额...还是不行哦。
若改成又提示:ArrayList al=new ArrayList();
则编译出错:使用了未经检查或不安全的操作。
版主啊,再给想想吧。
----------------解决方案--------------------------------------------------------
程序是可编译通过的,不用理会警告语吧
----------------解决方案--------------------------------------------------------
我用的是《21天学通JAVA》的代码,也有类似的警告。求解。
[ 本帖最后由 洛云 于 2010-12-20 12:18 编辑 ]
----------------解决方案--------------------------------------------------------