如果
map.put("1","aaa");
map.put("2","bb");
map.put("4","aaa");
map.put("3","ddd");
如何按value值排序输出?求简单的方法如果string []str1={"aaa","1"};
map.put("1",str1);
string []str2={"bb","123"};
map.put("2",str2);
string []str3={"aaa","23"};
map.put("4",str3);
string []str4={"ddf","11"};
map.put("3",str4);如何按value中的stri的第一项(aaa,bb,aaa,ddf)进行排序输出?
map.put("1","aaa");
map.put("2","bb");
map.put("4","aaa");
map.put("3","ddd");
如何按value值排序输出?求简单的方法如果string []str1={"aaa","1"};
map.put("1",str1);
string []str2={"bb","123"};
map.put("2",str2);
string []str3={"aaa","23"};
map.put("4",str3);
string []str4={"ddf","11"};
map.put("3",str4);如何按value中的stri的第一项(aaa,bb,aaa,ddf)进行排序输出?
想好是要达到什么目的,然后再选择容器。
treemap也好,set也好,值都不能是重复的。
但是value值可以重复阿
我需要的是输出key,value对,并且按value排序
如例一输出为:
aaa 1
aaa 4
bb 2
ddd 3
{
Map map = countWord(words); Object[] keyArray = (Object[]) map.keySet().toArray();
Object[] valueArray = (Object[]) map.values().toArray();
int keyArrayLength = keyArray.length;
String tmp = null; /*
* Bubble sort
*/
for (int i = 0; i < keyArrayLength; i++)
{
for (int j = 0; j < keyArrayLength-i-1; j++)
{
int value1 = Integer.parseInt((String) valueArray[j]);
int value2 = Integer.parseInt((String) valueArray[j+1]);
if (value2 > value1)
{
tmp = (String) valueArray[j+1];
valueArray[j+1] = valueArray[j];
valueArray[j] = tmp; tmp = (String) keyArray[j+1];
keyArray[j+1] = keyArray[j];
keyArray[j] = tmp;
} }
} Map mapReturn = new LinkedHashMap(); for (int i = 0; i < keyArrayLength; i++)
{
mapReturn.put(keyArray[i], valueArray[i]);
} return mapReturn;
}
说的对,应该用treeMap,另外treeMapl里面的value应该实现Comparable接口!
你的思路和我想的差不多,但是我不知道“treeMapl里面的value应该实现Comparable”如何实现。我现在已经实现了我要的功能,大概是这样的,把之前的key,value都放到一个类里面。
然后类的对象放入arraylist。
可以通过Comparable接口对类中某个属性进行排序。要对哪个值排序就对哪个值排。呵呵请教大家如何实现“treeMapl里面的value应该实现Comparable”?
{
public Domain()
{
//....
} private int placeOrder = 0; public int getPlaceOrder()
{
return placeOrder;
} public void setPlaceOrder(int placeOrder)
{
this.placeOrder = placeOrder;
} public int compareTo(Object o)
{
if (!(o instanceof Domain))
{
throw new RuntimeException("[INFO]: Domains compare exception, the two objects's type incompatible! ");
}
return placeOrder - ((Domain)o).getPlaceOrder();
}}
就这样子了。看看jdk的文档上面有详细的说明!