首页 > 代码库 > java面试2

java面试2

1、list中去重(无序,有序)

2、list中记录每个出现次数,并去重

public static void main(String[] args) {
        
         List<String> li2 = new ArrayList<String>();
         li2.add("11");
         li2.add("11");
         li2.add("22");
         li2.add("22");
         li2.add("133");
         li2.add("33");
         li2.add("33");
         li2.add("44");
         li2.add("44");
         li2.add("11");
         List<Map> li3 = new ArrayList<Map>();
         Map pd = new HashMap();
         pd.put("tel", "1111");
         Map pd1 = new HashMap();
         pd1.put("tel", "1112");
         Map pd2 = new HashMap();
         pd2.put("tel", "1111");
         Map pd3 = new HashMap();
         pd3.put("tel", "1113");
         Map pd4 = new HashMap();
         pd4.put("tel", "1113");
         Map pd5 = new HashMap();
         pd5.put("tel", "1114");
         Map pd6 = new HashMap();
         pd6.put("tel", "1114");
         Map pd7 = new HashMap();
         pd7.put("tel", "1115");
         li3.add(pd);
         li3.add(pd1);
         li3.add(pd2);
         li3.add(pd3);
         li3.add(pd4);
         li3.add(pd5);
         li3.add(pd6);
         li3.add(pd7);
         System.out.println("无序去重 ");
        quchong(li2);
        System.out.println("有序去重 ");
        quchong2(li2);
        System.out.println("记录次数 ");
        showTimes(li3);
    }
    public static void quchong(List<String> li2) {
        HashSet<String> set = new HashSet<String>(li2);
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
          String str = it.next();
          System.out.println(str);
        }
        
    }
    //保持顺序的去重
    public static void quchong2(List<String> li2) {
        for(int i=0;i<li2.size()-1;i++){
            for(int j=li2.size()-1;j>i;j--){
                if(li2.get(i).equals(li2.get(j))){
                     li2.remove(j) ;
                }
            }
        }
        System.out.println(li2.size());
    }
    //记录出现的次数
        public static void showTimes(List<Map> li3) {
            for(int i=0;i<=li3.size()-1;i++){
                int count=1;
                for(int j=li3.size()-1;j>i;j--){
                    if(li3.get(i).get("tel").equals(li3.get(j).get("tel"))){
                        count += 1;
                        li3.remove(j);
                    }
                }
                li3.get(i).put("count", count);
            }
            for(Map m:li3){
                System.out.println(m.get("tel")+"count:"+m.get("count"));
            }
        }

控制台打印结果:

无序去重
133
44
22
33
11
有序去重
5
记录次数
1111count:2
1112count:1
1113count:2
1114count:2
1115count:1

3、还有就是遍历叶子节点,本人暂时认为用递归思想,有事,稍后再更。。。。

java面试2