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

java中怎么对数组里的元素按出现的顺序排序 例如 数组【apple dog apple dog apple cat cat dog lamb】 按照元素出现的先后顺序排序 排序结果【apple apple apple dog dog dog cat cat lamb】 有没有很么方法可以调用?

其实这个用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是一个大小写不敏感的比较器。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-14
我尽量多写了几种数据结构,比较非主流,纯属娱乐
public static String[] sort(String[] strArr) {
if(null == strArr || strArr.length == 0){
return strArr;
}
Set<String> set = new HashSet<String>();
Map<String, Integer> map = new HashMap<String, Integer>();
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<String> it = set.iterator();
while(it.hasNext()){
String s = it.next();
int j = map.get(s);
for(int i=0;i<j;i++){
strArr[length]=s;
length++;
}
}
return strArr;
}本回答被提问者和网友采纳
第2个回答  2014-04-14
拆分出来,逐个累计数量,可以借助Map的,再做排序
第3个回答  2014-04-14
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);
相似回答