gpt4 book ai didi

java - 如何比较两个数组之间的元素,然后打印相等的元素?

转载 作者:行者123 更新时间:2023-11-30 07:01:37 25 4
gpt4 key购买 nike

我正在编写一个彩票程序,现在我有点陷入困境。我让用户选择七个数字,最后我希望程序告诉用户他正确回答了哪些数字。

我在理解数组时遇到了很多麻烦,以至于我不确定如何将正确猜测的数字存储在数组中,然后在末尾打印数组中的元素。我尝试了各种变体,但没有任何效果对我有用。

package whatevs;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;

public class lottery {

public static void main(String[] args) {
Scanner reader = new Scanner(System.in);

int[] userNumbers = new int[7];
int[] winningNumbers = new int[7];
int guesses;
int i;
int counter = 0;
int[]correctGuessed=new int[8];
int x;

ArrayList<Integer> list = new ArrayList<Integer>();
for (x=1; x<40; x++) {
list.add(new Integer(x));
}
Collections.shuffle(list);
for (x=0; x<7;x++) {
winningNumbers[x] = list.get(x);
}

System.out.println("Pick 7 numbers between 1 and 39: ");
for(i = 0; i < 7; i++){
guesses = reader.nextInt();
userNumbers[i] = guesses;
// System.out.println(userNumbers[i]);
for(x = 0; x<7;x++){
if(winningNumbers[x] == userNumbers[i]){
correctGuessed[x] = userNumbers[i];
counter+=1;
}
}

if (counter == 7){
System.out.println("You won!");
}
else
System.out.println("You had " + counter + " numbers correct: " + correctGuessed[x] );
}
}

最佳答案

我会使用集合而不是数组。与数组相比,集合有两个优点:

  • 他们确保集合中没有重复项(这正是您想要的,因为您有 40 个不同的数字,并且希望用户选择 7 个不同的数字)
  • 它们的级别要高得多,因此具有许多裸数组所没有的有用方法

所以这是你应该拥有的逻辑:

  1. 填写包含 40 个数字的列表
  2. 随机播放
  3. 创建 HashSet<Integer>并添加列表的前 7 个元素。这些是中奖号码
  4. 创建一个新的空 Hashset<Integer>
  5. 要求用户输入数字。将每个数字添加到这个新的 HashSet 中,并不断询问,直到该集合有 7 个数字
  6. 使用HashSet的retainAll()方法可以知道哪些猜中的号码也是中奖号码的一部分。 javadoc 是您了解此方法的作用的 friend 。

关于java - 如何比较两个数组之间的元素,然后打印相等的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40817931/

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