欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

在Arraylist中删除指定对象,arraylist指定对象

来源: javaer 分享于  点击 15822 次 点评:97

在Arraylist中删除指定对象,arraylist指定对象


首先初始化一个Hero集合,里面放100个Hero对象,名称分别是从
hero 0
hero 1
hero 2

hero 99.

通过遍历的手段,删除掉名字编号是8的倍数的对象
1. 刚开始,我想的是最简单的使用位置查找的方式来删除对应对象,后来发现,若每次查找并删除,后面的对象会自动前移,这样就不对了。想到可以做标记的方法,全部找到后一次性删除。
2. 站长给的是创建一个临时容器,有启发
3. 容器中可能会插入一些其余的对象在heros中间(改变位置),想要精准删除,要按名字查找
for (Hero h : heros) {
int id = Integer.parseInt(h.name.substring(10)); //如果名字中包含数字
if (0 == id % 8)
deletingHeros.add(h);
}

整个类

package charactor1;import java.util.ArrayList;

import charactor1.Hero;

import java.util.List;
public class TestCollection {
     public static void main(String[] args) {
            List<Hero> heros = new ArrayList<Hero>();

            // 放100个Hero进入容器
            for (int i = 0; i < 100; i++) {
                heros.add(new Hero("hero name " + i));
            }

            //准备一个容器,专门用来装要删除的对象
            List<Hero> deletingHeros = new ArrayList<>();

            for (Hero h : heros) {
                int id = Integer.parseInt(h.name.substring(10));  //**如果名字中包含数字**,
                //h.name.substring()
                if (0 == id % 8)
                    deletingHeros.add(h);
            }
            for (Hero h : deletingHeros) {
                heros.remove(h);
            }
//        heros.removeAll(deletingHeros); //直接通过removeAll删除多个Hero对象
            System.out.println(heros);
        }


}

相关文章

    暂无相关文章

用户点评