如何在此ArrayList中添加元素?

时间:2017-06-06 09:44:58

标签: java arraylist collections

我一直在努力使这项工作,但我怎么能添加第四个元素 在这个ArrayList“hourCounts”?

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++;
       }   
    }     
}

2 个答案:

答案 0 :(得分:5)

以下使用ArrayList的示例可以帮助您:

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

ArrayListList最受欢迎的实现之一。 ListArray[])不同。

数组是固定长度的。 Lists非常灵活。因此,当您知道要存储的元素数量时,您应该使用数组。 (例如String[])。如果您不知道尺寸,或者您知道尺寸会不时变化(通过添加和删除元素),建议您使用List

另外,请记住,在Java中,String不是char[]。实际上,它们会在某个字段中存储一组字符,但它与CPython不同。

答案 1 :(得分: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命名约定(并且不要将该类命名为该类中的字段)。