我正在为评估项目制作费用跟踪程序,但事实是,问题表太模糊了。其中一个问题是,我不确定我是应该坚持一维数组还是多维数组。
整个想法是;用户选择一个月,它将提示一个选项,允许用户将费用分配给该月份和某个项目。它看起来像这样:
Jan支出(最多10项) 输入项目1(按ENTER退出):快餐
我应该使用什么样的维数组?似乎随着我进入数组的不同维度,它有点像打开一堆蠕虫。
到目前为止,我已经得到了这个:
int m = 12;
int exp = 10;
int[][] month = new int [m][exp];
public void data(){
}
public void monthlyExp(){
String[] mth = {"Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug", "Sep",
"Oct","Nov","Dec"
};
System.out.print("Enter month > ");
int mon = input.nextInt();
for (int i = 0; i < month.length; i++){
System.out.println();
if (i == (mon-1)){
System.out.println(mth[i] + " expenditure <max 10 items>");
while (true){
for (int h = 0; h < exp; h++);
System.out.print("Enter item " + (h + 1) + "(PRESS ENTER TO EXIT)");
}
答案 0 :(得分:0)
一种方法是创建一个POJO类,其中包含费用的月份,费用和描述属性,并且只有一个POJO对象数组。如果您发现令人困惑,请尝试使用并行数组或更好的ArrayLists。也就是说,每个月,费用和描述都有一个单独的数组。每次在分类帐中有新条目时,使用相同的索引向每个数组添加元素,然后为下一个条目增加索引。
答案 1 :(得分:0)
public static void main(String[] args) {
int[] arr = new int[5];
int[][] newArr = new int[5][5];
// arr = newArr; compile time error
// newArr = arr; compile time error
newArr[0]=arr; // valid. But this is not preferred and is considered a bad practice. You might run into trouble later on with this little piece of code. So use Objcts/collections whereever possible instead of arrays.
for(int i=0;i<5;i++)
{
newArr[0][i]=i; // ArrayIndexOutOfBoundsException at runtime (arr has size of 5 remember?). So, be wary of such assignments. Everything seems fine until it breaks.
}
}