2017-06-06 20 views
1

私はこの作業をしようとしていましたが、このArrayList "hourCounts"に第4の要素 を追加するにはどうすればよいですか?このArrayListに要素を追加する方法は?

public class HourCounts { 

    private String[] hourCounts = {"One","Two","Three"}; 
    public hourCounts() { 
     hourCount[3] = new String ("Four") ; // how do I write the code to add a 
              // new element that says "Four"?  
    }  

    public void countHours() { 
     int hour = 0; 
     while(hour < hourCounts.length) { 
      System.out.println(hour + ": " + hourCounts[hour]); 
      hour++; 
     } 
    }  
} 
+3

これは、** '** ArrayList'ではない配列です。 Java配列は固定長です。実際に 'List'が欲しいですか? –

+0

ようこそスタックオーバーフロー! [ツアー](http://stackoverflow.com/tour)を見て回り、[ヘルプセンター](http://stackoverflow.com/help)、特に[どのように私に質問しますか良い質問?](http://stackoverflow.com/help/how-to-ask)と[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)。その2番目のリンクから:「宿題の助けを求める質問には、問題を解決するために今まで行ってきた作業の概要と、それを解決している困難の説明が含まれていなければなりません。 –

+0

これはArraylistではありませんが、これは通常の配列です。 – MaQuiNa1995

答えて

5

ArrayListを使用して、次の例は、あなたを助ける必要があります。

List<String> hourCounts = private List<String> hourCounts 
          = new ArrayList<>Arrays.asList("One", "Two", "Three")); 
public hourCounts() { 
    hourCount.add(new String ("Four")); 
} 

ArrayListListの中で最も人気のある実装の1つです。 Listは、Array[])とは異なるものです。

配列は固定長です。 Listsは柔軟性があります。したがって、格納する要素の量を知っている場合は、配列を使用する必要があります。 (例えば、String[])。サイズがわからない場合や、サイズの変更(エレメントの追加と削除による変更)がある場合は、Listを使用することをお勧めします。

また、JavaではStringchar[]ではないことに注意してください。実際には、特定のフィールドに文字配列を格納しますが、CまたはPythonとは異なります。

2

Java配列の長さは固定です(構築時)。現在の配列をコピーして別の要素を追加することがあります。同様に、

private String[] hourCounts = { "One", "Two", "Three" }; 

public hourCounts() 
{ 
    hourCounts = Arrays.copyOf(hourCounts, hourCounts.length + 1); 
    hourCounts[hourCounts.length - 1] = "Four"; 
} 

しかしは、私はあなたがList最後に

private List<String> hourCounts = new ArrayList<>(Arrays.asList(
     "One", "Two", "Three")); 

public hourCounts() { 
    hourCounts.add("Four"); 
} 

public void countHours() { 
    int hour = 0; 
    while (hour < hourCounts.size()) { 
     System.out.println(hour + ": " + hourCounts.get(hour)); 
     hour++; 
    } 
} 

のように、Javaの命名規則(およびそのクラス内のフィールドと同じクラスに名前を付けていない従ってください望んでいたと思います)。

+0

コレクションに対する反復は時間の複雑さではなくコードの読みやすさから改善できると思います –

関連する問題