【发布时间】:2014-04-29 06:52:18
【问题描述】:
我正在尝试删除重复项并对字符串数组进行排序,但我无法做到。我不明白我做错了什么。请检查代码。
String [] s = {"a", "y", "x","a","d", "y","m"};
Set st = new HashSet();
st.add(s);
Array.sort(st);
当我这样做时,我收到了这个错误。
Arrays 类型中的方法 sort(int[]) 不适用于参数 (Set)。
根据我的感觉,我们应该首先使用 Set 接口删除重复项,然后我们必须对它们进行排序。但我什至无法打印 st 引用变量也([[Ljava.lang.String;@1d9dc39])得到这个错误。
请帮帮我。
【问题讨论】:
-
TreeSet是你所需要的。 -
@JasonSperske 但我在线程“main”java.lang.ClassCastException 中得到以下treeset.Exception 异常:[Ljava.lang.String;不能在 java.util.TreeMap.compare(TreeMap.java:1188) 在 java.util.TreeMap.put(TreeMap.java:531) 在 java.util.TreeSet.add(TreeSet. java:255) 在 com.ani.sample.Mango.main(Mango.java:70)
-
使用
st.add(s);您正在将 array 添加到集合中。您必须将数组的 元素 添加到集合中。您可以使用set.addAll(Arrays.asList(s))或for循环来执行此操作。如果你使用泛型,这些问题是可以避免的...... -
我添加了一个快速实现,但老实说这里有很多很棒的答案
标签: java arrays sorting data-structures collections