Java 打印未排序的原始数组的步骤
我正在寻找打印出我的原始未排序数组,我有它打印的顺序和排序,但我似乎无法得到原始一打印出未排序。我使用了printRuleAndArray(字符串规则),我还使用了LengthCompare作为新的排序数组,我的问题是原来的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
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()更简单。