import java.util.*;
class TreeSettest
{
public static void main(String[] args)
{
TreeSet<Object> ts=new TreeSet<Object>(new student.studentComparator());
ts.add(new student(1,"zhangsan"));
ts.add(new student(2,"lisi"));
ts.add(new student(3,"wangdu"));
ts.add(new student(2,"ax"));
Iterator it=ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class student implements Comparable
{
int num;
String name;
student(int num,String name)
{
this.num=num;
this.name=name;
}
static class studentComparator implements Comparator
{
public int compare(Object o1,Object o2)
{
student s1=(student)o1;
student s2=(student)o2;
int result=s1.num>s2.num?1:(s1.num<s1.num?-1:0);
if(result==0)
{
result=s1.name.compareTo(s2.name);
}
return result;
}
}
public String toString()
{
return "num="+num+","+"name="+name;
}
public int compareTo(Object o)
{
student s=(student)o;
if(num>s.num)
{
return 1;
}
else if(num<s.num)
{
return -1;
}
else
return 0;
}
}
注意,我这里初始化
TreeSet<Object> ts=new TreeSet<Object>(new student.studentComparator());
的时候,想传递实现了Comparator接口的比较器对象student.studentComparator();
把student.studentComparator()去掉,是没有这个警告的,加上之后就有警告;
我现在的目的是想加上这个比较器对象后,没有警告提示
这个提示不是错误吧,应该是警告吧
那就用@SuppressWarnings("unchecked")注解吧
图中的List没有使用泛型,所以会报不安全的警告 .@SuppressWarnings("unchecked")的意思是隐藏所有的警告信息
编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请...
这个提示不是错误吧,应该是警告吧 那就用@SuppressWarnings("unchecked")注解吧 图中的List没有使用泛型,所以会报不安全的警告 .@SuppressWarnings("unchecked")的意思是隐藏所有的警告信息
编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请...
改成 private LinkedList<Object> mm=new LinkedList<Object>();集合里面有个概念叫泛型。。。如果你不在后面声明放到容器里的类型,就会给出警告。不过还是可以编译通过的,要去除警告就在后面指定个类型。。
...或不安全的操作。有关详细信息, 请使用 -Xlink:unchecked重新编...
这是一个警告的JDK1.5,JDK1.5增加了对泛型的支持,这将有一个集合里面的数据类型检查。如果你使用泛型时,没有指定的信息类型(名单<your对象>列表=新的ArrayList <你的对象>的(),其中,“对象”类型的信息),你可以不检查给定的参数遵守的要求出现unchecked警告,这并不影响程序的运行。
...检查或不安全的操作。有关详细信息,请使用-Xlink:unchecked重新编...
回答:哈哈,选我吧!JList现在支持泛型了 你可以使用JList 这样就叫类型检查