提问:
一个List我想在遍历的时候,将符合条件的元素直接remove掉,请问怎么解决?(不允许使用removeAll)

解决方案 »

  1.   

    集合里面的for循环,蛮有特色的、可以试试。
      

  2.   


    不请自答。import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
      

  3.   


    不请自答。import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    假如:
            list.add(5);
            list.add(6);
            list.add(2);
     list.add(2);

            list.add(4);
    试试
      

  4.   


    不请自答。import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    假如:
            list.add(5);
            list.add(6);
            list.add(2);
     list.add(2);

            list.add(4);
    试试我真是太年轻了修改如下:import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                    i--;
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
      

  5.   


    不请自答。import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    假如:
            list.add(5);
            list.add(6);
            list.add(2);
     list.add(2);

            list.add(4);
    试试我真是太年轻了修改如下:import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                    i--;
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    好吧,真有你的。
    咱也不卖关子了,你试试for (int i=list.size()-1;i>=0;i--)
    然后去掉多余的i--操作试试。
      

  6.   

    当初我做for练习的时候,老师让用for打印菱形
         *
       ***
     *****
    *******
     *****
       ***
         *
      

  7.   


    不请自答。import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    假如:
            list.add(5);
            list.add(6);
            list.add(2);
     list.add(2);

            list.add(4);
    试试我真是太年轻了修改如下:import java.util.ArrayList;public class main{
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<Integer>();
            list.add(5);
            list.add(6);
            list.add(2);
            list.add(2);
            list.add(4);
            for (int i=0;i<list.size();i++){
                if (list.get(i) < 4) {
                    list.remove(i);
                    i--;
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }
    好吧,真有你的。
    咱也不卖关子了,你试试for (int i=list.size()-1;i>=0;i--)
    然后去掉多余的i--操作试试。
    ss是字符串list for(Iterator<String> it = ss.iterator();it.hasNext();){
    String s = it.next();
    if(s.equals("123"))
    it.remove();
    }这样应该不错
      

  8.   

    百度搜索java面试题,一大堆呀
      

  9.   

    建议使用leetcode
    里面题目简单粗暴。。算法也都比较直接
    很适合练习
      

  10.   

    ArrayList a = new ArrayList();
    a.add("Java1");
    a.add("Java2");
    a.add("Java3");
    for(Iaterator i=a.iterator();i.hasNext();)
    {
           Object obj =i.next();
               if(obj.equals(Java2))
                    i.remove();
    }
    System.out.println(a);