【问题标题】:New to coding and struggling to understand this exercise [duplicate]编码新手并努力理解此练习[重复]
【发布时间】:2015-12-08 19:46:45
【问题描述】:

下面是练习:创建一个名为 SortingTest 的类。在其中,创建一个接受 int 值数组作为参数的方法,并将排序后的元素(最小元素优先)打印到终端。

这个问题的一部分也涉及使用应该使用的 HashSet。如何??

这是我目前得到的结果

import java.util.Arrays;
import java.util.HashSet;

public class SortingTest {

  public void sortArrays(int numbers[]) {
    Arrays.sort(numbers);
    System.out.println(numbers);

  }
}

我想我只是不理解它要求我做什么的概念。

【问题讨论】:

  • 想必,既然是练习,他们希望你自己实现排序。另外,那是not how you print an array
  • 任何关于我将如何去做的提示??
  • 您可以从here 开始,选择一种算法,然后编写实现所描述算法的代码。一个简单的(虽然很慢)是bubble sort
  • 冒泡排序是最直接的。完成排序后,只需使用 System.out.println(Arrays.toString(numbers)); 打印出新数组

标签: java bluej


【解决方案1】:

这里有一个小示例,应该可以帮助您完成它...有很多方法可以解决这个问题,但使用内置的 java 类非常简单。

import java.util.Arrays;

public class SortArray {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int integerArray[] = {1, 5, 3, 7, 8, 2};

        Arrays.sort(integerArray);

        for(int number : integerArray) {
            System.out.print(number + ", ");
        }

    }
}

【讨论】:

  • 您需要做的就是获取上面的代码并将其应用到您将在主方法中调用的单独方法中。
【解决方案2】:

首先阅读有多少种类型的算法用于排序并尝试自己实现它们。

这是在 Java 中冒泡排序的 link。

【讨论】:

    【解决方案3】:

    如果您确实必须手动实现排序算法,那么请查找双轴快速排序,我认为这是 Arrays.sort 在后台使用的。

    https://en.wikipedia.org/wiki/Quicksort

    如果您只需要使用 Arrays.sort 进行转储,您就快到了,但您需要循环打印值并实际调用该方法,您可能应该将其设为静态:

    sorted = Arrays.sort(numbers);
    
    for (int number : sorted) {
        System.out.println(number);
    }
    

    【讨论】:

      【解决方案4】:

      似乎没有人在谈论您的 HashSet 问题 HashSet 将删除数组中的重复项。因此,如果您不想要任何重复的数字,您将需要使用 HashSet。 例如,如果你有一个这样的排序数组

      [2,3,5,5,9,11,14,15,20,20] 
      sorted => [2,3,5,9,11,14,15,20]
      

      如果您必须创建自己的排序算法,那么我建议您在搜索之前尝试自己实现一个。排序的基本思想是按升序排列数字,或者如果你想降序排列。
      就像其他人说的,要打印一个可以使用的数组

      Arrays.toString(myarray);
      

      或循环遍历元素并打印值

      for(int i = 0; i < myarray.length(); i++){
          System.out.print(myarray[i]+" ");
      }
      

      【讨论】:

        【解决方案5】:

        您需要在循环(如 for)的帮助下遍历数组的每个元素,并在循环中打印每个数字。

        for(int index = 0; index < numbers.length(); index++)
        {
          System.out.println(numbers[index]);
        }
        

        【讨论】:

        • 你可以用Java内置的toString()方法打印出数字,它也可以接受整数数组作为参数。
        • @JackRyan 当谈到“Java 的内置 toString() 方法”时,大多数人会认为你在谈论 Object.toString(),它自然不接受任何参数。
        • @Kayaman 是对的。所以我不太明白-1的原因。
        • 我只是说当你可以输入System.out.println(Arrays.toString(numbers)) 时,为什么要编写代码来循环整数数组以打印其元素,特别是因为他已经在他的函数中使用了 Arrays 类。
        • @JackRyan 因为他正在做一个练习,其目的是学习基础知识,例如循环、数组和各种与经验不太相关的东西。
        猜你喜欢
        • 1970-01-01
        • 2018-11-30
        • 1970-01-01
        • 1970-01-01
        • 2017-01-18
        • 1970-01-01
        • 2021-02-23
        • 2011-12-30
        • 1970-01-01
        相关资源
        最近更新 更多