list remove
来源:互联网 发布:win10不信任软件 编辑:程序博客网 时间:2024/05/18 10:47
在java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但是对java中list进行删除元素,removelist中的元素就不怎么熟悉了吧,可以说很陌生,是实际操作中也很容易出错,先看看下面这个java中如何remove list中的元素吧.
- public class test {
- public static voidmain(String[] args) {
- String str1 = new String("abcde");
- String str2 = newString("abcde");
- String str3 = new String("abcde");
- String str4 = newString("abcde");
- String str5 = new String("abcde");
- List list = newArrayList();
- list.add(str1);
- list.add(str2);
- list.add(str3);
- list.add(str4);
- list.add(str5);
- System.out.println("list.size()=" + list.size());
- for(int i =0; i <list.size(); i++) {
- if (((String)list.get(i)).startsWith("abcde")) {
- list.remove(i);
- }
- }
- System.out.println("afterremove:list.size()=" + list.size());
- }
- }
大家觉得这个程序打印出来的结果是多少呢?
Java代码
- 运行结果不是:
- list.size()=5
- after remove:list.size()=0
而是:
Java代码
- list.size()=5
- after remove:list.size()=2
这是怎么回事呢?到底要如何remove list 中的元素呢?
原因:List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。
怎么解决?有三种方法可以解决这个问题:
1.倒过来遍历list
Java代码
- for(int i =list.size()-1; i> =0; i--){
- if (((String)list.get(i)).startsWith("abcde")) {
- list.remove(i);
- }
- }
2.每移除一个元素以后再把i移回来
Java代码
- for(int i =0; i <list.size(); i++) {
- if (((String)list.get(i)).startsWith("abcde")) {
- list.remove(i);
- i=i-1;
- }
- }
Java代码
- for(Iterator it = list.iterator(); it.hasNext();){
- String str = (String)it.next();
- if(str.equals("chengang")){
- it.remove();
- }
- }
0 0
- List remove
- List::remove()
- list remove
- list remove
- list.remove()
- List remove
- 关于List中的remove
- list如何remove
- Python list del remove
- 纠结的List remove
- JAVA list如何remove
- list remove 方法
- list remove 方法
- list remove 方法
- java list如何remove
- 关于list的remove
- golang list.remove
- List集合 remove
- linux 查看进程和终止进程
- 曾经的黑帮老大,现在的Java大神,你有什么要问的?
- linux c语言 select函数用法
- Android -- Camera2(Android5.0)
- 师文汇-OceanBase-支付宝交易O2O最佳实践
- list remove
- Almediadev VCL for Delphi XE 7
- 小米双剑出鞘,红米2、小米4S所到之处尸横满地?
- WebView、HTML5与PhoneGAP框架——Day02_2
- ASP.NET——缓存(cache)
- C++根据进程获取主窗口的句柄
- 在windows+emacs中使用evernote-mode编写印象笔记中文note
- Android蓝牙操作以及蓝牙通信
- Python 3 抓取网页资源的 N 种方法