给你写一个 ,效率一般。如果数组要以前顺序 就用 linkedhashset代替 String[] strArr = { "a", "d", "b", "d", "c", "c" }; Set set = new HashSet(); for (int i = 0; i < strArr.length; i++) { if (!set.add(strArr[i])) { set.remove(strArr[i]); } } String[] temp = new String[set.size()]; int i = 0; for (Iterator it = set.iterator(); it.hasNext(); i++) { temp[i] = (String) it.next(); } System.out.println(java.util.Arrays.toString(temp));
这样更好 String[] strArr = { "a", "d", "b", "d", "c", "c" }; Set set = new LinkedHashSet(); for (int i = 0; i < strArr.length; i++) { if (!set.add(strArr[i])) { set.remove(strArr[i]); } } String[] temp = (String[]) set.toArray(new String[set.size()]);
for (int i = 0; i < strArr.length; i++)
{
if (!set.add(strArr[i]))
{
set.remove(strArr[i]);
}
}
String[] temp = new String[set.size()];
int i = 0;
for (Iterator it = set.iterator(); it.hasNext(); i++)
{
temp[i] = (String) it.next();
}
System.out.println(java.util.Arrays.toString(temp));
for (int i = 0; i < strArr.length; i++)
{
if (!set.add(strArr[i]))
{
set.remove(strArr[i]);
}
}
String[] temp = (String[]) set.toArray(new String[set.size()]);
System.out.println(java.util.Arrays.toString(temp));
static void rearrange(String a[]){
Set set=new HashSet();
for(int i=0;i<a.length;i++){
set.add(a[i]);
}
String s[]=(String[])set.toArray();
for(int i=0;i<s.length;i++){
System.out.println(s[i]);
}
}