gpt4 book ai didi

java - BubbleSort - 我的代码返回随机地址

转载 作者:行者123 更新时间:2023-12-01 08:10:03 26 4
gpt4 key购买 nike

我已经实现了 BubbleSort 算法的代码,但它返回了一个奇怪的错误,您能告诉我问题是什么吗?

public class BubbleSort {

public static int[] unsorted = new int[5];

public void assignRandom(){
for(int i = 0; i < unsorted.length; i++){
unsorted[i] = (int)(Math.random()*10) + 10;
}
}

public void swapValues(int first, int second){

int temp = unsorted[first];
unsorted[first] = unsorted[second];
unsorted[second] = temp;
}

public void bubbleSort() {

for(int i = unsorted.length - 1; i >= 0; i--){
for(int j = 0; j < i; j++){
if(unsorted[j] > unsorted[j+1])
swapValues(j,j+1);
}
}
System.out.print(unsorted);
}

public static void main(String[] args){

BubbleSort newBubble = new BubbleSort();
newBubble.assignRandom();
newBubble.bubbleSort();
}
}

这基本上是一个进行冒泡排序的代码(为数组分配随机值然后排序)

它返回:[I@1658fe12

最佳答案

这不是一个随机地址。这是 int[]toString 表示形式:

[I@1658fe12

[表示数组,I表示整数,1658fe12是数组的hashCode。此表示来自 documentation :

getClass().getName() + '@' + Integer.toHexString(hashCode())

并且,对于 Class.getName :

If this class object represents a class of arrays, then the internal form of the name consists of the name of the element type preceded by one or more '[' characters representing the depth of the array nesting. The encoding of element type names is as follows:

Element Type: int, Encoding: I

数组的 hashCode 是从 Object 继承的标识 hashCode,它近似表示数组的内存位置(不是完全正确;细节,永远是细节)。

如果你想打印一个数组,你必须说

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

System.out.println(Arrays.toString(unsorted));

关于java - BubbleSort - 我的代码返回随机地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18199067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com