创建包含多个阵列的Array

时间:2015-01-28 04:38:35

标签: java arrays

我创建了两个类,一个名为“Bucket”,另一个名为“Player”。

在“Bucket”中,我有一个构造函数方法,它创建一个包含三个值-1,1和1的虚拟存储桶(即小数组)。同时,我创建了一个获取存储桶数组的方法。

在“Player”类中,我创建了一个使用更大数组的方法(我已经调用了这个更大的数组“ArrayOfBuckets”),它使用循环在每个索引值存储一个新的存储桶,直到某个点(当我> NumberSticks时)。但是,当我尝试设置

ArrayofBuckets[i] = bucketInstance.getBucket();

我从Eclipse收到错误,说"Type mismatch: cannot convert from Bucket to int"。我花了一个小时试图解决这个问题,但无济于事。任何帮助都会非常好。非常感谢,以下是所有使用的代码:

玩家类:

import java.util.Scanner;

public class Player {

Scanner scan = new Scanner(System.in);
public String name;
private int pType;
private int[] ArrayOfBuckets;

public Player(String tempName)
{
    this.name = tempName;   //this. is unneccessary
}

public void ArrayOfBuckets(int NumberSticks) //this is a constructor method and creates the arrays that contains a
{
    ArrayOfBuckets = new int[NumberSticks];
    int i = 0;
    while(i<NumberSticks) 
    {  
        Bucket bucketInstance = new Bucket();
        ArrayOfBuckets[i] = bucketInstance.getBucket();//new Bucket();      //ADD THIS
        i++;
    }     
}

和Bucket Class:

import java.util.Random;
public class Bucket {

//  private int[][] largeArray = null; //WTF DO I DO HERE
private int AIChoiceStick;
private int[] bucket;
private Random random = new Random();
private int CurrentScore[] = new int[51]; //at max, if 100 sticks are initially chosen, then each player takes at max 50 sticks, 
private int h = 0;                                                                         //^so why not have one more in case


public Bucket()
{
    bucket = new int[3];
    bucket[0] = 1;
    bucket[1] = 1;
    bucket[2] = 1;

public int[] getBucket()
{
    return bucket;
}

1 个答案:

答案 0 :(得分:0)

您正在谈论二维数组。

private int[][] ArrayOfBuckets;

你的ArrayOfBuckets(根据命名约定应该只是 buckets )是一个数组数组,因此它有两组方括号。

然后初始化:

ArrayOfBuckets = new int[NumberSticks][3];

顺便说一句,如果你想在一个数组中有50个元素的空间,那么将它初始化为 new int [50] ,这样它就会有0到49的索引。