2013-04-26 98 views
1

我想在ArrayList中進行二進制搜索,但binarySearch方法不適用於Long,以及Double和Float。我的代碼是如何在java ArrayList <Long>中進行二進制搜索?

import java.util.*; 

public class BinarySearchInArrayList 
{ 
    public static void main(String[]args) 
    { 
     ArrayList<Long> ar = new ArrayList(); 

     for(long l = 1;l<100000;l++) 
     { 
      ar.add(l); 
     } 

     System.out.println("arraylist: "+ar); 
     System.out.println("Which number's index do you want to know? "); 
     Scanner scan = new Scanner(System.in); 
     int p = scan.nextInt(); 
     int index = Collections.binarySearch(ar,p); 
     System.out.println("number "+p+" has index "+index); 
    } 

當我使用的,而不是Long整數,它工作正常,但我想用Long做出來。你能幫我嗎?

回答

6
int p = scan.nextInt(); 
int index = Collections.binarySearch(ar,p); 

上面應該是:

long index = Collections.binarySearch(ar,p); 
long p = scan.nextLong(); 
+0

是的!而已!非常感謝。 – marek 2013-04-26 13:23:51

+0

@marek如果它解決了你的問題,你可以接受這個答案。 – 2013-04-26 13:24:36