日期:2014-05-20  浏览次数:20883 次

new TreeSet<String>(comparator) 不带有参数?这是什么意思呃。谢谢。
Java code

import java.util.*; 
public class TreeSetDemo {     
     public static void main(String[] args)
     {              
         Comparator<String> comparator = new CustomComparator1<String>();         
         Set<String> set =   new TreeSet<String>(comparator);                 
         set.add("justin");       
         set.add("caterpillar");         
         set.add("momor");                  
      
         for(String name : set) 
        {             
         System.out.print(name + " ");         
        }         
        System.out.println();     
     }            
 }



Java code

import java.util.Comparator;
public class CustomComparator1<T> implements Comparator<T>
{     
           public int compare(T o1, T o2) 
          {         
             if (((T) o1).equals(o2))             
                return 0;         
             return ((Comparable<T>) o1).compareTo((T) o2) * -1;    
          }
}



在树上找到的一个程序,运行的时候报错。
TreeSetDemo.java:6: 类型 TreeSet 不带有参数  
  Set<String> set = new TreeSet<String>(comparator);  

这是为什么呢?参数不是可以为一个比较器么?

------解决方案--------------------
你使用的哪个版本的jdk
------解决方案--------------------
在我的环境里面能够通过输出以下:
momor justin caterpillar
------解决方案--------------------
有些类在dos下没法调用
------解决方案--------------------
是不是你classpath没有配置
------解决方案--------------------
系统里有不止一个jdk,一个1.5以前的被放到的PATH的前面