Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印未排序的原始数组的步骤_Java_Arrays_Sorting - Fatal编程技术网

Java 打印未排序的原始数组的步骤

Java 打印未排序的原始数组的步骤,java,arrays,sorting,Java,Arrays,Sorting,我正在寻找打印出我的原始未排序数组,我有它打印的顺序和排序,但我似乎无法得到原始一打印出未排序。我使用了printRuleAndArray(字符串规则),我还使用了LengthCompare作为新的排序数组,我的问题是原来的 import java.util.*; import java.util.Arrays; // Example of how to sort an array public class Sorting2 { //declare an array of string

我正在寻找打印出我的原始未排序数组,我有它打印的顺序和排序,但我似乎无法得到原始一打印出未排序。我使用了printRuleAndArray(字符串规则),我还使用了LengthCompare作为新的排序数组,我的问题是原来的

import java.util.*;
import java.util.Arrays;

// Example of how to sort an array
public class Sorting2
{
    //declare an array of strings
    static String[] nameArray = {"Alan", "Peter", "Ed", "Stephen", "Pheadraa"};

    public static void main(String[] args)
    {

        // sorting by length
        Arrays.sort(nameArray, new LengthCompare());
        //print out elements of array
        System.out.println(Arrays.toString(nameArray));
        //count the number of elements in the array
        int counter=nameArray.length;
        //print out numeric number of elements in array
        System.out.println("Number of elements in array: " + counter);
        //print out sorted array with shortest first and longest last
        printRuleAndArray("Sorted list by name length:");

    }

调用
String unsortedar=Arrays.toString(nameArray)System.out.println(unsortedar)

调用
字符串unsortedar=Arrays.toString(nameArray)System.out.println(unsortedar)

数组。sort()
对传入的数组进行排序。如果以后需要原始数组,请先复制数组,然后对该数组进行排序。

Arrays.sort()
对传入的数组进行排序。如果以后需要原始数组,请先复制数组,然后对该数组进行排序。

array.sort()
将始终对传入的数组进行排序,它不会生成新的副本-因此,如果确实需要未排序的数组与已排序的数组一起挂起,则必须制作一个副本:

String copyArr[] = new String[nameArray.length];
System.arraycopy( nameArray, 0, copyArr, 0, nameArray.length );
但是,与此方法相比(如果可行的话),更可取的方法是对未排序的数组执行所有需要的操作(例如打印它或将其转换为字符串),然后对其进行排序

正如评论中指出的,
Arrays.copyOf()
也可以用来完成同样的事情。

Arrays.sort()
总是对传入的数组进行排序,它不会生成新的副本-因此如果您真的需要未排序的数组和已排序的数组一样挂起,然后你必须复制一份:

String copyArr[] = new String[nameArray.length];
System.arraycopy( nameArray, 0, copyArr, 0, nameArray.length );
但是,与此方法相比(如果可行的话),更可取的方法是对未排序的数组执行所有需要的操作(例如打印它或将其转换为字符串),然后对其进行排序


正如评论中指出的那样,
Arrays.copyOf()
也可以用来完成同样的任务。

Arrays.sort
将改变您原来的数组。您可以选择在排序之前打印原始数组,或者复制原始数组并对副本进行排序。

数组。排序将更改原始数组。您可以选择在排序之前打印原始数组,或者复制原始数组并对副本进行排序

 for(String arr : nameArray ) {  //arr gets successively each value in nameArray.
System.out.println(arr);
}
此示例使用foreach循环

本例使用foreach循环执行类似操作

    String orig = Arrays.toString(nameArray);
    Arrays.sort(nameArray, new LengthCompare());
    String sorted = Arrays.toString(nameArray);

    System.out.println(orig);
    System.out.println(sorted);
做这样的事

    String orig = Arrays.toString(nameArray);
    Arrays.sort(nameArray, new LengthCompare());
    String sorted = Arrays.toString(nameArray);

    System.out.println(orig);
    System.out.println(sorted);

您正在对数组进行排序,是否要不排序地打印它?利益冲突..我需要查看未排序的数组以比较两者,然后创建两个数组,对其中一个进行排序,而不更改另一个。您正在对数组进行排序,是否要打印未排序的数组?利益冲突..我需要查看未排序的数组以比较两者,然后创建两个数组,对其中一个进行排序而不更改另一个。有
arrays.copyOf()
要复制数组,比使用
System.arraycopy()
arrays.copyOf()
复制数组更简单,它比使用
System.arraycopy()更简单。