本文共 1027 字,大约阅读时间需要 3 分钟。
今天被问到了一个面试题,挺有意思的,这里特意的记录一下,问题是这样的:怎么从list中找出重复数据,以及这些重复数据的个数?
解决思路是:使用一个map,key用来记录list中的数据,value用来记录重复数据的个数,然后操作map来获取list中的重复数据即可,代码如下:
package com.Jevin.test;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Test03 { public static void main(String[] args) { Listlist = new ArrayList<>(); list.add("a"); list.add("a"); list.add("a"); list.add("b"); list.add("b"); list.add("c"); list.add("d"); list.add("d"); Map map = new HashMap<>(); for(String str:list){ Integer i = 1; //定义一个计数器,用来记录重复数据的个数 if(map.get(str) != null){ i=map.get(str)+1; } map.put(str,i); } System.out.println("重复数据的个数:"+map.toString()); System.out.print("重复的数据为:"); for(String s:map.keySet()){ if(map.get(s) > 1){ System.out.print(s+" "); } } }}
执行结果如下:
转载地址:http://wgtvb.baihongyu.com/