java中怎么 对数组里的 元素 按出现的顺序排序

2025-01-02 09:21:10
推荐回答(4个)
回答1:

其实这个用java.utils.Arrays这个对象里的sort(T[],Comparator)的这个方法就可以了。

String[] words = new String[] { "apple", "dog", "apple", "dog", "apple", "cat", "cat", "dog", "lamb" }; Arrays.sort(words, String.CASE_INSENSITIVE_ORDER);
这样words就已经被排序了。

Plus: Comparator用String自己带的比较器即可。CASE_INSENSITIVE_ORDER是一个大小写不敏感的比较器。

回答2:

我尽量多写了几种数据结构,比较非主流,纯属娱乐
public static String[] sort(String[] strArr) {
if(null == strArr || strArr.length == 0){
return strArr;
}
Set set = new HashSet();
Map map = new HashMap();
int length = 0;
for (String str : strArr) {
set.add(str);
if (set.contains(str)) {
int sum = 1;
if (map.containsKey(str)) {
sum = map.get(str) + 1;
map.remove(str);
}
map.put(str, sum);
}
}
Iterator it = set.iterator();
while(it.hasNext()){
String s = it.next();
int j = map.get(s);
for(int i=0;i strArr[length]=s;
length++;
}
}
return strArr;
}

回答3:

拆分出来,逐个累计数量,可以借助Map的,再做排序

回答4:

String [] str=new String[]{"apple","dog","apple","dog","apple","cat","cat","dog","lamb"};
List list=new LinkedList();
for(String s:str){
if(list.lastIndexOf(s)!=-1){
list.add(list.lastIndexOf(s), s);
}else{
list.add(s);
}
}
System.out.println(list);