2013-02-11 27 views
0

這是我的代碼時,我的Java應用程序做TreeSet中的Java代碼在Java應用程序中工作,但不是在Android項目

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 


import java.util.Iterator; 
import java.util.List; 
import java.util.ArrayList; 
import java.util.Locale; 
import java.util.TreeSet; 

public class DateRounding { 

public static void main(String[] args) throws ParseException { 


List ls=new ArrayList(); 

ls.add (new SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.ENGLISH).parse("2010-02-31-14-30")); 
ls.add(new SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.ENGLISH).parse("2010-02-31-14-50")); 
ls.add(new SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.ENGLISH).parse("2010-02-31-14-10")); 
ls.add(new SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.ENGLISH).parse("2010-02-31-14-01")); 
final Calendar c = Calendar.getInstance(); 
String string = "2010-02-31-14-00"; 
Date date = new SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.ENGLISH).parse(string); 
Date x=getDateNearest(ls , date); 
System.out.println("date:"+x); 
System.out.println(ls.indexOf(x)); 
System.out.println("index:"+ls.indexOf(new SimpleDateFormat("yyyy-MM-dd-HH-mm", Locale.ENGLISH).parse("2010-02-31-14-10"))); 


} 




private static Date getDateNearest(List<Date> dates, Date targetDate){ 
    return new TreeSet<Date>(dates).higher(targetDate); 

     // return targetDate; 

    } 

} 

當我添加相同的代碼的Android項目的示值誤差「的方法更高(日期)是未定義的類型TreeSet「,但這更高()在Java應用程序中完美工作.....我怎麼能在Android中使用更高的方法?

+1

您應該以不同的方式實現getDateNearest()方法,也許使用迭代器並自己比較日期,它可能會解決您的問題,並在android設備/ amulator上測試它。 – meh 2013-02-11 09:32:38

+0

@Meh是對的 - 創建一個新的treeset只是爲了使用更高級的函數並放棄set和懶惰列表編程是非常低效的。實施自己的排序和搜索,會更有效率 - 這是Android的關鍵 – 2013-02-11 09:34:49

回答

1

編譯器的合規性設置設置爲JRE 1.4(higher首次出現在1.5中)。檢查你的項目的配置(很難給出詳細信息,甚至不知道它是哪個工具或IDE)。

最近的Android版本不僅支持,甚至需要遵守JRE 1.5或1.6。從我可以快速測試,Android 2.2 API級別8抱怨和Android 3.1級別12已經沒有。截至今天,最近的水平是17.

檢查developer manual如何爲Android構建正確的應用程序。 public static void main(String[] args)不是正確的做法。

1

撇開評論中的論點,如果你真的想要使用.higher(),那麼你必須設置最低API級別9或更高。

相關問題