java - 如何使用一些逻辑将一个数组复制到另一个数组

标签 java arrays sorting

我需要编写将一个数组复制到另一个数组的代码。依次复制所有元素

  1. 大于0,
  2. 然后依次所有元素等于0,
  3. 然后依次所有元素都小于0。

这是我执行此任务的失败尝试:

public static void main(String[] args)
{
    int[] arr = new int[100];
    Random random = new Random();

    for (int i = 0; i < arr.length; i++)
    {
        int randNum = random.nextInt(600) - 350;
        arr[i] = randNum;
    }
    int[] newArr = new int[100];
    for (int i = 0; i < arr.length; i++)
    {
        if (arr[i] > 0)
        {
            System.arraycopy(arr, arr[i], newArr, 0, 100);

            // arraycopy() Not works!
            // I tryed to compare each element in array greater than 0 
            // and copy it to newArr

        }
    }
    System.out.println(Arrays.toString(newArr));

为什么 System.arraycopy 不工作?

最佳答案

看,您正在逐单元复制数组!所以内部循环应该是这样的:

public static void main(String[] args)
{
    int[] arr = new int[100], newArr = new int[100];
    int j=0;
    Random random = new Random();

    for (int i = 0; i < arr.length; i++)
    {
        int randNum = random.nextInt(600) - 350;
        arr[i] = randNum;
    }

    for (int i = 0; i < arr.length; i++)
    {
        if (arr[i] > 0){
            newArr[j]=arr[i];
            j++;
        }
    }

    // and add code for numbers=0 and less than 0. So you should append code:
    for (int i = 0; i < arr.length; i++)
    {
        if (arr[i] == 0){
            newArr[j]=arr[i];
            j++;
        }
    }

    for (int i = 0; i < arr.length; i++)
    {
        if (arr[i] < 0){
            newArr[j]=arr[i];
            j++;
        }
    }

    System.out.println(Arrays.toString(newArr));
}

关于java - 如何使用一些逻辑将一个数组复制到另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38115999/

相关文章:

Java将字符串列表写入文件,但文件为空

java - 某些记录的 Azure eventhub Kafka org.apache.kafka.common.errors.TimeoutException

c - 在函数中设置指向结构体的指针的成员

javascript - 在 Javascript 中连续打印 X 数量的项目

Python 合并重复元素

java - 覆盖派生类中已经覆盖的方法

JavaFX - 拦截来自 "child"可平移 ScrollPane 的拖动事件并重定向到 "parent"ScrollPane

javascript - 通过基于 Javascript 中第一个数组的元素分组来合并两个数组

javascript - 摆脱选择标签中的空白条目

mysql - 根据数组值列表更新数据库排序列