删除列表的最后一个元素
Remove last element of a list
我的任务是在 ArrayList
的新手 Java 教程中执行以下操作
// 1) Declare am ArrayList of strings
// 2) Call the add method and add 10 random strings
// 3) Iterate through all the elements in the ArrayList
// 4) Remove the first and last element of the ArrayList
// 5) Iterate through all the elements in the ArrayList, again.
下面是我的代码
import java.util.ArrayList;
import java.util.Random;
public class Ex1_BasicArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i <= 10; i++){
Random rand = new Random();
String randy = String.valueOf(rand);
list.add(randy );
}
for (int i = 0; i < list.size(); i++){
System.out.print(list.get(i));
}
list.remove(0);
list.remove(list.size());
for (int i = 0; i < list.size(); i++){
System.out.print(list.get(i));
}
}
}
代码可以运行,但运行时出现以下错误消息。关于我做错了什么的想法?
java.util.Random@7852e922java.util.Random@4e25154fjava.util.Random@70dea4ejava.util.Random@5c647e05java.util.Random@33909752java.util.Random@55f96302java.util.Random@3d4eac69java.util.Random@42a57993java.util.Random@75b84c92java.util.Random@6bc7c054Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.remove(Unknown Source)
at apollo.exercises.ch08_collections.Ex1_BasicArrayList.main(Ex1_BasicArrayList.java:23)
List
指数从 0
到 list.size() - 1
。超过上限会导致 IndexOutOfBoundsException
list.remove(list.size() - 1);
您的列表有 11 个元素,它们的索引为 0-10。当您调用 list.remove(list.size());
时,您是在告诉它删除索引 11 处的元素(因为列表的大小为 11),但该索引超出范围。
任何列表的最后一个元素的索引总是list.size() - 1
。
我的任务是在 ArrayList
的新手 Java 教程中执行以下操作// 1) Declare am ArrayList of strings
// 2) Call the add method and add 10 random strings
// 3) Iterate through all the elements in the ArrayList
// 4) Remove the first and last element of the ArrayList
// 5) Iterate through all the elements in the ArrayList, again.
下面是我的代码
import java.util.ArrayList;
import java.util.Random;
public class Ex1_BasicArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i <= 10; i++){
Random rand = new Random();
String randy = String.valueOf(rand);
list.add(randy );
}
for (int i = 0; i < list.size(); i++){
System.out.print(list.get(i));
}
list.remove(0);
list.remove(list.size());
for (int i = 0; i < list.size(); i++){
System.out.print(list.get(i));
}
}
}
代码可以运行,但运行时出现以下错误消息。关于我做错了什么的想法?
java.util.Random@7852e922java.util.Random@4e25154fjava.util.Random@70dea4ejava.util.Random@5c647e05java.util.Random@33909752java.util.Random@55f96302java.util.Random@3d4eac69java.util.Random@42a57993java.util.Random@75b84c92java.util.Random@6bc7c054Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.remove(Unknown Source)
at apollo.exercises.ch08_collections.Ex1_BasicArrayList.main(Ex1_BasicArrayList.java:23)
List
指数从 0
到 list.size() - 1
。超过上限会导致 IndexOutOfBoundsException
list.remove(list.size() - 1);
您的列表有 11 个元素,它们的索引为 0-10。当您调用 list.remove(list.size());
时,您是在告诉它删除索引 11 处的元素(因为列表的大小为 11),但该索引超出范围。
任何列表的最后一个元素的索引总是list.size() - 1
。