System.out.println(Arrays.toString(arr));报错
时间: 2024-03-21 09:40:17 浏览: 11
如果在使用 `System.out.println(Arrays.toString(arr));` 时报错,可能是因为没有正确导入 `java.util.Arrays` 包。你可以在代码开头添加以下导入语句:
```java
import java.util.Arrays;
```
另外,你也可以使用 for 循环遍历数组并打印每个元素。例如,假设我们有一个整型数组arr,可以使用以下代码打印整个数组:
```java
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
```
这将打印出整个数组的内容,每个元素之间用空格隔开。
相关问题
public static void sort(int[] arr) { System.out.print("排序之前:"); System.out.print(Arrays.toString(arr)+" "); //冒泡排序 for(int i=0;i<arr.length;i++) { for(int j=0;j<arr.length-i-1;j++) { if(arr[j]>arr[j+1]) { int temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp; } } } System.out.print("排序之后:"); System.out.print(Arrays.toString(arr)+" "); System.out.println(""); }
这段代码实现了一个冒泡排序算法,它接收一个整型数组作为参数,并对该数组进行排序。冒泡排序的基本思想是每次比较相邻的两个元素,如果它们的顺序不对,就交换它们的位置,直到整个数组都被排序好为止。
具体来说,sort 函数中的两个 for 循环分别用于遍历整个数组和比较相邻元素。在内层循环中,如果前一个元素大于后一个元素,就将它们交换位置。这样一来,每次内层循环结束后,最大的元素就会被排到数组的最后面。最后,sort 函数打印出排序前和排序后的数组。
该函数的时间复杂度为 O(n^2),其中 n 是数组的长度。虽然冒泡排序算法的时间复杂度比较高,但是它实现简单,适用于小规模数据的排序。
public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6}; Random t = new Random(arr.length); int r = t.nextInt(arr.length); for (int i = 0; i < arr.length - 1; i++) { int temp = arr[i]; arr[i] = arr[r]; arr[r] = temp; } System.out.println(Arrays.toString(arr)); }只能生成一次随机结果,刷新几次结果都一样
这是因为 `Random` 构造函数传入的参数是一个种子值,而不是数组的长度。当种子值相同时,生成的随机数序列也是相同的。因此,你需要将 `Random` 构造函数中的参数换成一个随机的种子值,比如当前时间的毫秒数 `System.currentTimeMillis()`。这样每次运行程序时,种子值都会不同,生成的随机数序列也就不同了。修改后的代码如下:
```
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
Random t = new Random(System.currentTimeMillis());
int r = t.nextInt(arr.length);
for (int i = 0; i < arr.length - 1; i++) {
int temp = arr[i];
arr[i] = arr[r];
arr[r] = temp;
}
System.out.println(Arrays.toString(arr));
}
```