为什么这个Java数组的.sort方法不起作用?

时间:2014-09-08 13:02:09

标签: java arrays

开始认为我使用了错误的书来学习。我已经从Sam的Learn Java中逐字逐句地复制了这个词,但.sort(names);方法未定义为数组类型。

我感觉它与public static void main(String[] args) {电话有关,但我不知道如何修改它。

package arrays;

import java.util.*;

public class Arrays {
    public static void main(String[] args) {
        String names[] = { "Lauren", "Audrina", "Heidi", "Whitney",
                "Stephanie", "Spencer", "Lisa", "Brody", "Frankie", "Holly",
                "Jordan", "Brian", "Jason" };
        System.out.println("The original order:");
        for (int i = 0; i < names.length; i++) {
            System.out.print(i + ": " + names[i] + " ");
        }
        Arrays.sort(names);
        System.out.println("\nThe new order:");
        for (int i = 0; i < names.length; i++) {
            System.out.print(i + ": " + names[i] + " ");
        }
        System.out.println();
    }
}

1 个答案:

答案 0 :(得分:8)

Thomas指出答案,但由于这是评论,你无法接受;这是你可以接受的CW。)

Arraysjava.util包中的一个类,其中包含sort方法。通过调用自己的Arrays,您可以隐藏代码中的java.util一个(这有时称为“阴影”),因此Arrays.sort(names);行正在尝试在您的类上使用sort方法(并且它没有)。

要解决此问题,您有三种选择:

  1. 更改班级名称(ArrayTest,无论如何)或

  2. 将您的电话号码更改为sort至:java.util.Arrays.sort(names);(因此编译器知道您正在谈论的是java.util.Arrays,而不是您的班级),或

    < / LI>
  3. 使用import static java.util.Arrays.sort;导入方法sort而不是类Arrays,并使用sort(names);调用它(没有前面的类名)。