在众多字符串中找出重复项

Ailen 2011-07-06 02:52:04
RT。
如果我有很大规模的字符串数组,我想知道其中是否有完全一样的字符串,怎么用一个比较快的方法得到?
请大家指教!~~






PS: 数据较多, n * n 的方法请不要说了~~
...全文
241 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ailen 2011-07-06
  • 打赏
  • 举报
回复
嗯,非常简洁呀!!
[Quote=引用 7 楼 iis81365341 的回复:]

如果要找出重复元素的话楼上两位的方法都可以。
如果只是判断是否重复也可以这样做。
Java code
if(a.length == new HashSet<String>(Arrays.asList(a)).size())
{
System.out.println("有重复数据");
}
[/Quote]
zn85600301 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shuipinglp 的回复:]

准备一个set和list,一个循环向set里放入,当set.add(XXX)返回false时,把数组中的值放入list,一次循环之后看list里有什么,就知道原来数组里有什么重复的了
[/Quote]

恩 这个方法不错
syoumei 2011-07-06
  • 打赏
  • 举报
回复
呵呵 ,我还以为在一串字符串里找相同的呢...
iis81365341 2011-07-06
  • 打赏
  • 举报
回复
失误
应该是!=
iis81365341 2011-07-06
  • 打赏
  • 举报
回复
如果要找出重复元素的话楼上两位的方法都可以。
如果只是判断是否重复也可以这样做。
if(a.length == new HashSet<String>(Arrays.asList(a)).size())
{
System.out.println("有重复数据");
}
Ailen 2011-07-06
  • 打赏
  • 举报
回复
呵呵~~用归并n * log n

[Quote=引用 3 楼 syoumei 的回复:]

蛮难的,mark下,等人说出算法名好查资料...
[/Quote]
Ailen 2011-07-06
  • 打赏
  • 举报
回复
呵,与1楼用的方法一样,只是数据结构不一样,很好的~~呵,CSDN大牛就是多呀~~谢谢


[Quote=引用 2 楼 alexandertech 的回复:]

Java code

// 入口参数 arr ---- 待检查的字符串数组
// 返回: 包含所有重复字符串的List
public List<String> duplicate(String[] arr) {
List<String> r = new ArrayList<String>();
HashMap<String,Intege……
[/Quote]
Ailen 2011-07-06
  • 打赏
  • 举报
回复
好方法,我以前有利用数据库Key值唯一的方式做过,不过太麻烦,没想到用set,呵,不过我后面通过字典排序的方法做到了,效果应该是一样的,虽然没你这个方法快,呵呵。谢谢!~~


[Quote=引用 1 楼 shuipinglp 的回复:]

准备一个set和list,一个循环向set里放入,当set.add(XXX)返回false时,把数组中的值放入list,一次循环之后看list里有什么,就知道原来数组里有什么重复的了
[/Quote]
syoumei 2011-07-06
  • 打赏
  • 举报
回复
蛮难的,mark下,等人说出算法名好查资料...
飞跃颠峰 2011-07-06
  • 打赏
  • 举报
回复

// 入口参数 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;
}
三千大千世界 2011-07-06
  • 打赏
  • 举报
回复
准备一个set和list,一个循环向set里放入,当set.add(XXX)返回false时,把数组中的值放入list,一次循环之后看list里有什么,就知道原来数组里有什么重复的了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧