java 两个数组去除重复的值,结果第一个数组去掉第二个数组中重复的值

List<Integer> list = new  ArrayList();
          list.add(1);
          list.add(1);
          list.add(1);
          list.add(1);
          list.add(2);
          list.add(3);
          list.add(1);
          list.add(3);
          list.add(2);
          list.add(1);
          list.add(1);
          list.add(5);

          List<Integer> list2 = new  ArrayList();
          list2.add(1);
          list2.add(2);
          list2.add(7);

          for (int i = 0; i< list2.size();i++){
               for (int j = 0; j< list.size();j++){
                    System.out.println(list);
                    if (list2.get(i).intValue() == list.get(j).intValue()){
                         list.remove(j);
                        j = j - 1;
                    }
               }

          }
          System.out.println(list);
     }

这个方法对于大量数据,效率低下,最近更新了一篇利用Set 去重。