我正在尝试使用此代码创建初始大小为10的数组列表。

List<EWSMessage> messages = new ArrayList<EWSMessage>(10);
List<EWSMessage> newMessages =  new ArrayList<EWSMessage>(startMessages.size() - 10);

for (int i = 0, count = startMessages.size(); i < count; i++) {
  if (i < 10) {
    messages.set(i, startMessages.get(i));
  } else {
    newMessages.set(i - 10,startMessages.get(i));
  }
}


我的问题是我需要填写数组列表,然后才能在for循环中设置值。我只是不知道该怎么做。此外,方法中将startMessages声明为List<EWSMessages>

最佳答案

该行创建一个初始容量为10的列表,但大小为零。

List<EWSMessage> messages = new ArrayList<EWSMessage>(10);


提供初始容量是可选的。当您向其中添加元素时,该列表将会增长。

添加元素的一种简单方法是使用add() method

List<EWSMessage> messages = new ArrayList<EWSMessage>();
List<EWSMessage> newMessages =  new ArrayList<EWSMessage>();

for (int i = 0, count = startMessages.size(); i < count; i++) {
    if (i < 10) {
        messages.add( startMessages.get(i));
    } else {
        newMessages.add( startMessages.get(i));
    }
}

10-04 12:56