整数在java中意味着什么

时间:2013-04-13 19:51:41

标签: java

我希望找出Integer不是int但是Integer意味着这里有问题的代码

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是关键字还是我能得到什么帮助?

4 个答案:

答案 0 :(得分:5)

在Java中,我们有一个名为Wrapper Classes的概念。包装类是包装基本类型的对象。例如,char有一个Character包装类。这些类旨在为对象方法提供类似基本类型的函数。

所有原始包装类也是不可变的,这意味着虽然您可以访问数据,但一旦创建它就无法对其进行操作。

This Wikipedia Article列出了Java中的所有包装类。

正如PetarMinchev所说,没有必要在此代码中使用它们。

答案 1 :(得分:4)

Integer是一个包装int的类,它是一种基本类型。

这里不需要使用Integer,只会浪费资源。您可以不使用compareTo进行比较,只需使用简单<>进行比较。

答案 2 :(得分:0)

Integer是一个包装普通原始int的类。 在某些情况下,当您需要一个类来表示整数而不是基本类型时,它可以使用。

一个常见的例子是当你需要制作一个通用集合时:

List<Integer> list;

另外,Integer类有methods,因此使用它有时会更方便

答案 3 :(得分:0)

Integers是int的包装类(它是原始数据类型)。

所以实际上Integer只不过是Java创建的一个类,它实现了一些实用方法。

无需将其视为任何神奇的东西,它只是你在那里处理的物品。有一些功能。

您可以在此代码中使用int。

使用Integer类的最佳实用程序将是您希望通过引用传递参数或使用它们给出的大量实用函数。

对于像这样的简单比较操作,最好使用int。