gpt4 book ai didi

Java 数组被无意地组织起来

转载 作者:行者123 更新时间:2023-12-02 02:07:28 24 4
gpt4 key购买 nike

我正在完成一项学术作业,一切都正常,但我想知道为什么我的输出将数字按从小到大的顺序排列。

谁能告诉我在我的代码中哪里发生了这种情况?

这是我的代码:

public static void main(String[] args) {
System.out.println("Quenten's Copy");
Scanner input = new Scanner(System.in);

int number[] = new int [1000000]; // initialize first array
int count[] = new int [1000000]; // initialize second array
int temp = 0; // intialize integer to hold for comparison
int i; // intialize loop integer

System.out.print("Enter seven numbers: "); // ask user for input

// first loop - takes in user input
for (i = 0; i < 7; i++) {
number[i] = input.nextInt();
}

// second loop - checks for reoccurance of numbers
for (i = 0; i < number.length; i++) {
temp = number [i];
count [temp]++;
}

// final loop - gives the output of the count
for (i = 1; i < count.length; i++) {
if (count [i] > 0) {

// output statement - tells user each number and how many
// times each number occurs
System.out.printf("Number %d occurs %d times\n", i, count [i]);



}
}

这是输出的副本:

Enter seven numbers: 12 23 44 22 23 22 55
Number 12 occurs 1 times
Number 22 occurs 2 times
Number 23 occurs 2 times
Number 44 occurs 1 times
Number 55 occurs 1 times

正如您所看到的,它在 23 之前列出了 22,等等。我希望它按照输入的顺序打印。

最佳答案

将输入中的 int 分配给数组:

number[i] = input.nextInt();

然后你通过循环对它们进行计数:

for (i = 0; i < number.length; i++) {
temp = number [i];
count [temp]++;
}

如您所见,如果数字 temp12 ,您增加 count 的值在索引12减一。

基本上,count[i] = number of occurrence of number i

因此,当您打印 count 时数组,您会按自然顺序看到它们。

如果您想按遇到顺序打印您的项目,我建议您使用 Map存储出现的情况:

Map<Integer, Integer> count = new LinkedHashMap<>(); // LinkedHashMap remember the insert order

for (i = 0; i < number.length; i++) {
temp = number [i];
if (count.contains(temp)) {
count.put(temp, count.get(temp) + 1);
} else {
count.put(temp, 1);
}
}

您可以按顺序打印它们:

for (Entry<Integer, Integer> entry : count.entrySet()) {
// entry.getKey is the number
// entry.getValue is the occurence
}

关于Java 数组被无意地组织起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50548702/

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