在众多字符串中找出重复项 RT。 如果我有很大规模的字符串数组,我想知道其中是否有完全一样的字符串,怎么用一个比较快的方法得到? 请大家指教!~~ PS: 数据较多, n * n 的方法请不要说了~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 准备一个set和list,一个循环向set里放入,当set.add(XXX)返回false时,把数组中的值放入list,一次循环之后看list里有什么,就知道原来数组里有什么重复的了 // 入口参数 arr ---- 待检查的字符串数组 // 返回: 包含所有重复字符串的List public List<String> duplicate(String[] arr) { List<String> r = new ArrayList<String>(); HashMap<String,Integer> map = new HashMap<String,Integer>(); for (int i=0; i<arr.length; i++) if (map.containsKey(arr[i])) r.add(arr[i]); else map.put(arr[i], 0); return r; } 好方法,我以前有利用数据库Key值唯一的方式做过,不过太麻烦,没想到用set,呵,不过我后面通过字典排序的方法做到了,效果应该是一样的,虽然没你这个方法快,呵呵。谢谢!~~ 呵,与1楼用的方法一样,只是数据结构不一样,很好的~~呵,CSDN大牛就是多呀~~谢谢 呵呵~~用归并n * log n 如果要找出重复元素的话楼上两位的方法都可以。如果只是判断是否重复也可以这样做。if(a.length == new HashSet<String>(Arrays.asList(a)).size()){ System.out.println("有重复数据");} java写入东西为什么是用输出流呢,在线等 如何实现类实例化时候实现接口 问个readLine的小问题 头大了。。。 jakarta-tomcat5.0.12在哪下载? 入门级问题????奇怪 类中异常抛出的问题? 对于一个不经常上网的java学者来说,有学习java的好办法吗?因为一些软件总是要上网下载的,软件店又买不到,怎么办?求救!!! 如何使JFrame最大化? (请教高手)怎样只用APPLET实现一个图象和一个小动画一起出现而不闪烁? 跪求数学高手 java 执行文件批量导入oracle
// 入口参数 arr ---- 待检查的字符串数组
// 返回: 包含所有重复字符串的List
public List<String> duplicate(String[] arr) {
List<String> r = new ArrayList<String>();
HashMap<String,Integer> map = new HashMap<String,Integer>();
for (int i=0; i<arr.length; i++)
if (map.containsKey(arr[i])) r.add(arr[i]);
else map.put(arr[i], 0);
return r;
}
如果只是判断是否重复也可以这样做。
if(a.length == new HashSet<String>(Arrays.asList(a)).size())
{
System.out.println("有重复数据");
}