java去掉List中的重复值代码

1. list中为字符串的情况,代码如下:

public static void main(String[] args) {
        List<String> li = new ArrayList<String>();
        li.add("AAAA");
        li.add("AAAA");
        li.add("AAAA");
        li.add("BBBB");
        li.add("BBBB");
        li.add("CCCC");
        li.add("CCCC");
        li.add("CCCC");
        li.add("CCCC");

        ArrayList<String> result = new ArrayList<String>();
        for (String s : li) {
            if (Collections.frequency(result, s) < 1)
                result.add(s);
        }
        for (int i = 0; i < result.size(); i++) {
            System.out.println(result.get(i));
        }
    }

输出结果为:
AAAA
BBBB
CCCC
2.如果list存放的是对象,可以借助Map来处理,因为Map中key值不能够重复的特点.

/***
     * 去除List<PartsInfoDTO>列表中的重复对象 ~!!
     * @param list
     * @return
     */
    public static List<PartsInfoDTO> removeDuplicate(List<PartsInfoDTO> list) {
//        Set<PartsInfoDTO> set = new HashSet<PartsInfoDTO>();
        List<PartsInfoDTO> newList = new ArrayList<PartsInfoDTO>();
        
        Map map = new HashMap();
        for (Iterator<PartsInfoDTO> iter = list.iterator(); iter.hasNext();) {
            PartsInfoDTO element = (PartsInfoDTO) iter.next();
            map.put(element.getId(), element); //如果id重复会覆盖.
        }
        
        Iterator it = map.keySet().iterator();   
        while (it.hasNext()) {   
           Integer key = (Integer) it.next();   
           newList.add((PartsInfoDTO) map.get(key));   
        }   

       return newList;
   }

另外补充下Map转换成List的方法:

/**
     * @param args
     */
    public static void main(String[] args) {

        Map map = new HashMap();
        map.put("a", "a1");
        map.put("b", "b1");
        map.put("c", "c1");

        List listKey = new ArrayList();
        List listValue = new ArrayList();
        Iterator it = map.keySet().iterator();
        while (it.hasNext()) {
            String key = it.next().toString();
            listKey.add(key);
            listValue.add(map.get(key));
        }
        System.out.println("Convert Finished !");

        for (int i = 0; i < listKey.size(); i++) {
            System.out.print("Key :" + listKey.get(i));
            System.out.println("     Value :" + listValue.get(i));
        }
    }

 

 

转载于:https://www.cnblogs.com/simpledev/p/3491345.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值