java - 在java中只打印一次随机数组变量

标签 java arrays

我有一个大学作业,我必须创建一个 Java 程序来生成随机配对的客户及其交易总额。

它分为两部分,第一部分产生客户及其交易,如下所示:

Customer ID, Transaction Value
1, 74.36 
1, 44.98 
3, 6.44
0, 19.13
3, 59.44
2, 81.56
0, 87.21
4, 40.9
1, 42.11
3, 66.05

第二个总结了每个客户的交易总数,如下所示:

Customer: 1 Transactions: 3.0
Customer: 1 Transactions: 3.0
Customer: 3 Transactions: 3.0
Customer: 0 Transactions: 2.0
Customer: 3 Transactions: 3.0
Customer: 2 Transactions: 1.0
Customer: 0 Transactions: 2.0
Customer: 4 Transactions: 1.0
Customer: 1 Transactions: 3.0
Customer: 3 Transactions: 3.0

我的问题是第二部分应该只生成每个客户 ID 一次,即 1,3,0,2,4。我只能使用 int 和 double 变量来执行此操作,而无需创建任何其他数组或结构。我的代码可以在下面找到。

 import java.util.*;

 public class Assignment3 {
   public static long studentNumber=1234567; 

   public static int customerID[];
   public static double transactionValue[];

   public static void initialiseData(int size) {
     customerID = new int[size];
     transactionValue = new double[size];

     Random rand = new Random(studentNumber);
     for (int i=0; i<size; i++) {
       customerID[i] = rand.nextInt(size / 2);
       transactionValue[i] = rand.nextInt(10000) / 100.0;
     }
   }

   public static void main(String args[]) {
     int size=10;

    initialiseData(size);

    // Your code should only be below this line
    double transaction = 0;
    int customer = 0;
    int customer_Total = 0;
    int count = 0;
    int customer_count = 0;
    double transaction_Total = 0;

    System.out.println("Customer ID, Transaction Value");

    for (size= 0; size < customerID.length; size++) {
    customer= customerID[size];
    transaction= transactionValue[size];
    System.out.println(customer + ", " + transaction);

    }

    System.out.println("");

    for(customer_count = 0; customer_count < customerID.length; customer_count++) {
      transaction_Total= 0;
      customer_Total = customerID[customer_count];
      count = customerID[customer_count];
      //System.out.println(count);

      for (int customer_count2 = 0;
           customer_count2 < customerID.length;
           customer_count2++) {                         
        if (customer_Total == customerID[customer_count2]) {
          transaction_Total++;

          //System.out.println(customer_count2);
        }
      }

      System.out.println("Customer: "+ customer_Total + " " +
                         "Transactions: " + transaction_Total); 
    }

    // Your code should not be below this line

  }
}

最佳答案

我建议你看看如何Collections.shuffle作品。在您的情况下,您可以创建一个包含所有可能值的数组,然后以随机顺序“洗牌”。

关于java - 在java中只打印一次随机数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859946/

相关文章:

java - Spring JPA Repository动态查询

java - (Intellij) 编译时为 "unclosed character literal"和 "illegal character '\u00a 7'"

C编程: how to fill an array?

java - 有没有办法从 Play 的 CRUD 表单中过滤某些字段?

java - 在 aspect 中读取注释属性

WGS84 到谷歌地图位置和返回的 Java 代码

java - 矩阵交换行 - Java

ios - 定义具有多维属性的对象

arrays - 无法分配给属性 : 'itemArray' is a get-only property

java - 类中的方法不能应用于给定类型