2017-06-06 55 views
1

我一直在努力使这项工作,但我怎么能在此ArrayList“hourCounts”添加第四个元素 ?如何在这个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

欢迎来到Stack Overflow!请参考[游览](http://stackoverflow.com/tour),环顾四周,阅读[帮助中心](http://stackoverflow.com/help),特别是[我该如何问一个好问题?](http://stackoverflow.com/help/how-to-ask)和[我可以问什么问题?](http://stackoverflow.com/help/on-topic)。从第二个环节来看:“提出作业帮助的问题必须包括您迄今为止解决问题所做的工作的总结,并描述您解决问题的难度。” –

+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最流行的实现方式之一。 List是不是Array[])不同的东西。

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

另外,请记住,在Java中,String s不是char[]。事实上,他们在一个特定的字段中存储一组字符,但它不同于CPython

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

我认为迭代集合可以改善,而不是时间复杂性,但从代码可读性 –

相关问题