Java中如何移除List中前/后几个元素?

JAVA中循环遍历list有三种方式:   for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。

1、for循环遍历list

for(int i=0;i<list.size();i++){
    if(list.get(i).equals("abc"))
        list.remove(i);
}
这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。


2、增强for循环

for(String x:list){
    if(x.equals("abc"))
        list.remove(x);
}
这种方式的问题在于,删除元素后继续循环会报错误信息 ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常抛出。但是删除完毕马上使用break跳出,则不会触发报错。


3、iterator遍历

Iterator<String> it = list.iterator();
while(it.hasNext()){
    String x = it.next();
    if(x.equals("abc")){
        it.remove();
    }
}
这种方式可以正常的循环及删除。但要注意的是,使用iterator的remove方法,如果用list的remove方法同样会报上面提到的ConcurrentModificationException错误。

以上内容来自http://www.cnblogs.com/pcheng/p/5336903.html

感谢作者无私奉献!!!


下面是我要说的重点:

如何移除List中前/后几个元素?

爬完上面的坑,我来给出一种简单实用的方法:

移除list中前三个元素:

for (int i = 0; i < 3; i++) {
	list.remove(0);
}


移除list中后三个元素:

for (int i = 0; i < 3; i++) {
	list.remove(list.size()-1);
}

对,没错,只要循环几次就行了。。。
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 如果你想将列表的某个元素移动到指定位置,可以使用以下方法之一: 1. 在列表删除该元素,然后使用 `add()` 方法将其插入到指定位置。例如: ```java List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "cherry")); int index = 1; String element = "mango"; list.remove(element); list.add(index, element); ``` 2. 使用 `Collections.rotate()` 方法将元素移动到指定位置。例如: ```java List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "cherry")); int index = 1; String element = "mango"; int currentIndex = list.indexOf(element); int distance = index - currentIndex; Collections.rotate(list, distance); ``` 3. 使用 `List.set()` 方法将元素移动到指定位置。例如: ```java List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "cherry")); int index = 1; String element = "mango"; String temp = list.set(index, element); int currentIndex = list.indexOf(temp); list.set(currentIndex, element); ``` ### 回答2: 在Java,我们可以使用List的remove和add方法来移动列表元素到指定位置。 假设我们有一个List对象名为list,我们想要将索引为index的元素移动到指定位置targetIndex。我们可以按照以下步骤进行操作: 1. 首先,通过调用list的get方法,获取索引为index的元素,并将其保存到一个临时变量,比如temp。 2. 然后,通过调用list的remove方法,将索引为index的元素从列表移除。 3. 接下来,通过调用list的add方法,将temp元素插入到目标位置targetIndex上。这样,temp元素就被移动到了指定位置。 以下是一段简单的示例代码,演示了上述过程: ```java public static void moveElement(List<String> list, int index, int targetIndex) { String temp = list.get(index); // 获取索引为index的元素 list.remove(index); // 移除索引为index的元素 list.add(targetIndex, temp); // 将元素temp插入到目标位置targetIndex上 } ``` 通过调用上述方法,我们就可以将列表的某个元素移动到指定位置了。 需要注意的是,这个方法只适用于List接口的实现类,比如ArrayList和LinkedList,不适用于其他类型的列表实现。另外,移动元素可能会导致索引发生变化,所以在处理完移动操作后,需要根据实际需求对索引进行相应的调整。 ### 回答3: 在Java,可以使用以下几个步骤将一个列表(List)的某个元素移动到指定位置: 1. 首先,找到列表需要移动的元素的索引位置。可以使用List的indexOf()方法来获取指定元素的索引。例如,假设列表名为list,需要移动的元素为element,可以使用int index = list.indexOf(element)来获取元素的索引位置。 2. 接下来,根据指定位置将元素从列表移除。可以使用List的remove()方法来移除元素。例如,假设需要将元素移动到索引位置为newIndex,可以使用list.remove(index)来移除原位置的元素。 3. 然后,将元素插入到指定位置。可以使用List的add()方法将元素插入到指定位置。例如,假设需要将元素插入到索引位置为newIndex,可以使用list.add(newIndex, element)来将元素插入到新位置。 以下是一个示例代码: ```java List<String> list = new ArrayList<>(); list.add("元素1"); list.add("元素2"); list.add("元素3"); String element = "元素2"; int newIndex = 1; int index = list.indexOf(element); if (index != -1) { list.remove(index); list.add(newIndex, element); } System.out.println(list); ``` 执行以上代码,将会输出移动元素后的列表内容: ``` [元素1, 元素2, 元素3] ``` 注意:如果元素在列表有多个重复出现,以上方法只会将第一个出现的元素移动到指定位置。如果需要将所有的重复元素都移动到指定位置,可以使用循环遍历整个列表来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值