将数组中的内容存储到另一个数组中

时间:2014-04-19 22:01:54

标签: java arrays loops

那么它的作用是将随机值存储在31-58的数组元素中,然后将它们加起来并取平均值,然后我只是将它们显示出来。

我的问题是:我怎么能把用于给每天随机数给出一天的数组来自31-58(2月28日)并存储到第二个数组(工作日[ ])。那么在程序的最后我可以显示我想要的日期名称。

和我的代码看起来像。(这只是一个剪辑)

double [] anArray = new double[366];//Keep track of all the days in the year
    String [] weekday = new String[366];//I hope to store the day names in this array
    String days[]={"monday","tuesday","wednesday","thursday",
        "friday","saturday","sunday"};

//---each letter is 0 to start each new month at monday---
int a=0;int b=0;int c=0;int d=0;int e=0;int f=0;int g=0;int h=0;int i=0;
int j=0;int k=0;int l=0;//Days counter
//--These start at 1 to start each new month on the 1st
int jandays=1;int febdays=1;int mardays=1;int aprdays=1;int maydays=1;int jundays=1;
int juldays=1;int augdays=1;int septdays=1;int octdays=1;int novdays=1;int decdays=1;

            //Temperatures for February
for(int feb=31;feb <= 58;feb++){
    anArray[feb]=(int)(26 + Math.random() * (40-26+1));

    //System.out.println(days[b++ %7] + " january "+ (febdays++) +" at "+ anArray[feb]+" degrees"); // This is just testing to see if everything checks out.

    febtotal += anArray[feb];
}
febavg= febtotal/31;
System.out.printf("The Average temperature in February: "+"%.2f",febavg);
System.out.println("");

地狱我要求的实际上有点让我感到困惑o.o.

1 个答案:

答案 0 :(得分:0)

如果您发现自己处理了许多不同的array类型,那么最好是一口气,并考虑对象。

public class WeekDay {
    private int number;
    private String name;


    public WeekDay(int number, String name) {
         // Your constructor here.
    }

    /** GETTERS AND SETTERS **/
}

然后你创建一个List来包含它们。

List<WeekDay> weekDays = new ArrayList<WeekDay>();

WeekDay个对象进行平均后,您可以循环浏览每个对象,然后拨打getName() (您需要添加此内容)以返回当天的名字。这提供了更清晰,更易于管理和更易于呈现的代码,它将帮助您更有效地概念化您的目标。老实说,OOP在复杂情况下非常棒。

修改

这里的诀窍是将index映射到日期名称。我们假设你有一个像这样的阵列..

 [0] = 0
 [1] = 0
 .
 .
 .
 [34] = 3
 [35] = 9
 .
 .
 .
 [62] = 7
 [63] = 0

您的号码在3462之间。这些值需要映射到几天,所以让我们从制作方法开始。

 public String[] mapDays(int[] dayNumbers, int startNumber, int endNumber) {
    // Your code in here.
 }

您传入包含所有数字的数组,并在月份的数字开始和结束时传入。然后,你要进行一些检查。

 // First, you make a new array.
 String[] dayNames = new String[dayNumbers.length];

 for(int x = startNumber; x <= endNumber; x++) {
      // You now need to map the value of x, to the week day name.

 }