消除重复的字符串,只保留一个在一个字符串数组

消除重复的字符串,只保留一个在一个字符串数组

问题描述:

你好,大家好我试图消除阵列的字符串的所有重复的字符串,并保留只有一个是串...消除重复的字符串,只保留一个在一个字符串数组

承担临时[]是的字符串数组并包含

temp[0] = "stack"; 
temp[1] = "overflow"; 
temp[2] = "stack"; 
temp[3] = "stack"; 
temp[4] = "overflow"; 

我需要在这种情况下,只有“堆栈”和“溢出”(它可被存储到另一个字符串数组),但保留了顺序

temp2[0] = "stack"; 
temp2[1] = "overflow"; 

假设TEM P2是另一个字符串数组..

+1

您对这个问题有什么看法?你会如何解决它?让我们从暴力方式开始吧。 – zengr 2012-03-31 08:35:18

+0

@KingAslan将鼠标悬停在JavaScript标记上,并仔细阅读工具提示。 – 2012-03-31 08:38:17

+0

hashset不保持顺序但更快,linkedhashset保持顺序但稍慢一点。 – HRgiger 2012-03-31 08:57:02

一个java.util.LinkedHashSet将删除重复,同时维持秩序。

temp = new LinkedHashSet<String>(Arrays.asList(temp)).toArray(new String[0]); 
+0

简单而高效的解决方案...谢谢你.... – 2012-03-31 14:35:06

+0

不客气。 – 2012-03-31 14:56:38

使用Set

Set<String> uniqueStrings = new HashSet<String>(); 
uniqueStrings.add("Stack"); 
uniqueStrings.add("Overflow"); 
uniqueStrings.add("Stack");//ignored 

您定义使用这里设置:

Set<String> set = new HashSet<String>(); 
set.addAll(Arrays.asList(temp)); 
temp2 = set.toArray();