日期:2014-05-20  浏览次数:20711 次

请教排序问题
int i1 = 40;
int i2 = 20;
int i3 = 10;
int i4 = 30;

要求排序好后打印出 i3,i2,i4,i1;

ps:不是冒泡排序后打印出 10,20,30,40哈 不然也不能发个帖子请教了 呵呵

------解决方案--------------------
import java.util.*;

class test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();//这里要使用泛型,要养成良好的编程习惯
list.add("b");
list.add("a");
list.add("14");
list.add("c");
list.add("12");
list.add("13");
Collections.sort(list);//这个排序方法是从小大到,由于数字都是小于字母的(a是97,a>任何单个数字),所以数字在前

for(String data: list) {
System.out.println(data);
}
}

用list的方法排序最方便。其他的都需要自己来写算法
------解决方案--------------------
刚才写了一个,应该能够符合你的要求:代码如下
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;


public class SortedKeys{
public static void main(String[] args) {
ArrayList<Integer> result = new ArrayList<Integer>();
ArrayList<String> keys = new ArrayList<String>();
Hashtable<String,Integer> store = new Hashtable<String,Integer>();
store.put("i1", 40);
store.put("i2", 20);
store.put("i3", 10);
store.put("i4", 30);
//获取值,并存储到ArrayList对象中
Enumeration<Integer> num = store.elements();
while(num.hasMoreElements())
{
result.add(num.nextElement());
}
//对ArrayList对象,进行升序排列
Collections.sort((List<Integer>)result);
//获取键值,并存储到数组中
Enumeration<String> key = store.keys();
String [] keyNum = new String[result.size()];
int i = 0;
while(key.hasMoreElements())
{
keyNum[i++] = key.nextElement();
}

for(Integer s:result)
{
for(int j = 0;j < i;j++)
{
if(store.get(keyNum[j]).equals(s))
{
keys.add(keyNum[j]);
}
}
}
System.out.println(keys);
}

}