{ "744101", "744101","744101", "744102",744102","744102","744102","744102","744103","744103"}
List<String> list2=new new ArrayList<String>(); //
Arrays.sort(iArr);
for(int k=0;k<iArr.length;k++) {
list2.add(String.valueOf(iArr[k]));
}
List li2 = new Array List(new HashSet(list2));
尝试排序数组列表时,我无法获得结果。请纠正我。
答案 0 :(得分:2)
TreeSet对元素进行排序并删除重复项。
switch(Factory.createFactory()) {
case let mgr as SubClass:
print("Subclass")
mgr.SubClassMethod()
case let mgr as AnotherClass:
print("AnotherClass")
mgr.AnotherClassMethod()
// default case
case let mgr as IInterface:
print("Unknown specific regarding return type")
}
答案 1 :(得分:0)
试试这个:
List<String> list = new ArrayList<>();
Set<String> set = new HashSet<>();
hash.addAll(list);
list.clear();
list.addAll(hash);
如果你想要的话,还有排序列表。
答案 2 :(得分:0)
正如Eran所提到的,由于使用了HashSet实现,您当前的实现会“清理”列表,因为此Set实现不保留顺序。请尝试使用LinkedHashSet。正如javadoc中提到的,它避免了与TreeSet相关的开销。 代码就是这样的
String[] arrayToProcess = { "744101", "744101","744101", "744102","744102","744102","744102","744102","744103","744103"};
//creates array and sorts the list
List<String> sortedList = Arrays.asList(arrayToProcess);
Collections.sort(sortedList);
//removes duplicates the list, while retaining order of sorted list
Set<String> uniqueNumbers = new LinkedHashSet<String>();
uniqueNumbers.addAll(sortedList);
请注意,正在使用的Set的实现是LinkedHashSet。此片段也会生成数组的两个副本,因此如果数组大小很大,我建议不要使用它。
我建议你在java中查找implementations of collections。因为他们每个人都有自己的优点和缺点: