消除重复的字符串,只保留一个在一个字符串数组
问题描述:
你好,大家好我试图消除阵列的字符串的所有重复的字符串,并保留只有一个是串...消除重复的字符串,只保留一个在一个字符串数组
承担临时[]是的字符串数组并包含
temp[0] = "stack";
temp[1] = "overflow";
temp[2] = "stack";
temp[3] = "stack";
temp[4] = "overflow";
我需要在这种情况下,只有“堆栈”和“溢出”(它可被存储到另一个字符串数组),但保留了顺序
temp2[0] = "stack";
temp2[1] = "overflow";
假设TEM P2是另一个字符串数组..
答
一个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();
您对这个问题有什么看法?你会如何解决它?让我们从暴力方式开始吧。 – zengr 2012-03-31 08:35:18
@KingAslan将鼠标悬停在JavaScript标记上,并仔细阅读工具提示。 – 2012-03-31 08:38:17
hashset不保持顺序但更快,linkedhashset保持顺序但稍慢一点。 – HRgiger 2012-03-31 08:57:02