2013-04-13 35 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。