3

私はJavaにかなり慣れていないので、基本的なヘルプを得ることができるかどうか疑問に思っていました。

時刻表というクラスがあります

public class Timetable
{   private String Month;
    private String Day;
    private int[] times;

public Timetable(String month, String Day, int[] times) 
    {
        this.month = month;
        this.day = day;
        //initalize various times..

このクラスは、月、日、時刻を追加するTimetablesの別のクラス(LinkedList)に関連しています。このような..

Add(new Timetable("May","Monday", **???**));

ここで、配列内にあり、{1,2,3,4}や{2,4,9}などのさまざまな時間を追加する必要があり、int[4]インデックスのみがあります。

時間を初期化し、int []時間を渡してタイムテーブルを作成する方法についての提案はありますか?

4

3 に答える 3

0

Addメソッドを呼び出す直前に配列を初期化します。

int[] times = {1, 2, 3, 4};
Add(new Timetable("May", "Monday", times));

また:

int[] times = {5, 6, 7};
Add(new Timetable("May", "Monday", times));
于 2012-09-07T07:06:18.573 に答える
0

次のような時間を追加することもできます。

LinkedList<Timetable> link = new LinkedList<Timetable>();

link.add(new Timetable("May", "Monday", new int[]{1, 2, 3, 4}));
link.add(new Timetable("June", "Sunday", new int[]{5, 6, 7}));
于 2012-09-07T07:15:10.453 に答える
0

他の回答に加えて、コンストラクターの署名をに適合させることもできます

public Timetable(String month, String Day, int... times) { /*...*/ }

Timetableクラス内での使用法は同じままです(int...引数はsの配列にマップされますint)が、呼び出しが次のように簡略化されるという利点があります。

LinkedList<Timetable> link = new LinkedList<Timetable>();

link.add(new Timetable("May", "Monday", 1, 2, 3, 4)); // array creation is now optional
link.add(new Timetable("May", "Monday", new int[]{1, 2, 3, 4})); // works as well
link.add(new Timetable("June", "Sunday", 5, 6, 7));
于 2012-09-07T08:04:32.567 に答える