2013-04-13 66 views
-1

我期待找出整數不是整數,但整數意味着這裏的意思是有問題的代碼什麼是整數Java中

public class BasicSearch { 
    public static final int NOT_FOUND = -1; 
    public static int binarySearch(Integer[] a, int x) 
    { 
     int low=0; 
     int high = a.length - 1; 
     int mid; 
     while (low <= high) 
     { 
      mid = (low + high)/2; 
      if (a[mid].compareTo(x)<0) 
       low = mid + 1; 
      else if (a[mid].compareTo(x) > 0) 
      high = mid -1; 
      else 
       return mid; 
     } 
     return NOT_FOUND; 
    } 
    public static void main(String[] args) 
    { 
     int SIZE = 8; 
     Integer[] a = new Integer[SIZE]; 
     for (int i=0; i<SIZE; i++) 
      a[i] = new Integer(i * 2); 
     for (int i=0; i<SIZE*2; i++) 
      System.out.println("Found " + i + " at " + binarySearch(a, new Integer(i))); 
    } 


    } 

我不知道如果Integer是一個關鍵字或什麼我能得到任何幫助?

+1

可怕的是,人們無法簡單地谷歌'java整數'。他們將如何重用SO答案? – Val

+1

[JavaDoc](http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html)應該回答你所有的問題。 – jlordo

+0

我googled java整數它顯示int不是整數如我所述 – Nobody

回答

5

在Java中,我們有一個叫做Wrapper Classes的概念。包裝類是包裝原始類型的對象。例如,char有一個Character包裝類。這些類被設計爲賦予對象方法像基本類型那樣的功能。

所有Primitive包裝類也是不可變的,這意味着雖然您可以訪問數據,但創建後無法對其進行操作。

This Wikipedia Article列出了Java中的所有包裝類。

正如PetarMinchev所說,在這段代碼中沒有必要使用它們。

4

Integer是一個包裝int的類,它是一種原始類型。

這裏不需要使用Integer,它只是浪費資源。您可以在不使用compareTo的情況下進行比較,但可以使用簡單的<>進行比較。

0

Integer是一個包裝普通原始int的類。 它可以用在某些情況下,當你需要一個類來表示整數而不是原始類型。

一個常見的例子是,當你需要做一個泛型集合:

List<Integer> list; 

也,Integer類有methods,所以有時會使用它

0

整數是包裝更方便int類(這是原始數據類型)。

所以實際上整數不過是Java創建的一個類,他們已經實現了一些實用方法。

沒有必要把它看作任何魔術物,它只是你在那裏處理的物體。具有一些功能。

你可以很好地在你想要的代碼中使用int。

使用Integer類的最佳實用工具將是您希望通過參考傳遞參數的地方或者使用它們提供的許多實用函數。

對於像這樣簡單的比較操作,最好使用int。