Java 如何根据密钥对linkedhashmap进行排序。这里我使用了一个对象作为键
我正在使用链接的hashmap填充可扩展列表中的值。我成功地填充了它们。这里的键是菜单项,值是相应的修饰符。我放置了两个按钮,用于增加和减少菜单项的数量。因为是键,我删除它们并更新它们,然后再次将它们放入列表中。这次他们在最后一行插入。如何将它们放置在删除前的相同位置? 更新密钥的函数Java 如何根据密钥对linkedhashmap进行排序。这里我使用了一个对象作为键,java,android,collections,linkedhashmap,Java,Android,Collections,Linkedhashmap,我正在使用链接的hashmap填充可扩展列表中的值。我成功地填充了它们。这里的键是菜单项,值是相应的修饰符。我放置了两个按钮,用于增加和减少菜单项的数量。因为是键,我删除它们并更新它们,然后再次将它们放入列表中。这次他们在最后一行插入。如何将它们放置在删除前的相同位置? 更新密钥的函数 public void putminusquantity(int pos) { try { SaleDetailsMenuItems aa = (S
public void putminusquantity(int pos)
{
try
{
SaleDetailsMenuItems aa = (SaleDetailsMenuItems)listDataChild.keySet().toArray()[pos];
List<ModifList> modlist =listDataChild.get(aa);
//modlist.add(mli);
listDataChild.remove(aa);
int qty = Integer.parseInt(aa.getQuantity());
float priced = Float.parseFloat(aa.getPrice());
//Double finaltotal1 = Math.round( priced * 100.0 ) / 100.0;
//Toast.makeText(getApplicationContext(), finaltotal1.toString(), Toast.LENGTH_SHORT).show();
System.out.println(qty);
float priced1 = priced / qty;
if(qty>1)
{
qty--;
priced = priced1 * qty;
String quantity1 = Integer.toString(qty);
String price1 = Float.toString(priced);
aa.setQuantity(quantity1);
aa.setPrice(price1);
listDataChild.put(aa, modlist);
listviewAdapter = new ExpandableListAdapter(getApplicationContext(), listDataChild);
list.setAdapter(listviewAdapter);
listviewAdapter.notifyDataSetChanged();
resetquantity();
settotal();
}
else
{
Toast.makeText(getApplicationContext(), "Invalid Quantity", Toast.LENGTH_SHORT).show();
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}我正在使用这个类的对象作为地图中的键
TreeMap
是按键对地图进行排序的方法。可能这将帮助您可能重复@R9J抱歉,这是Linkedhash地图,我在这里使用一个对象作为密钥。
TreeMap