在Android中,如何订购LinkedHashMap?

在Android中,如何订购LinkedHashMap?,android,sorting,linkedhashmap,Android,Sorting,Linkedhashmap,我有一个LinkedHashMap,它将订单号存储为键,将字符串值存储为值: {12,"apple"} {1,"grape"} {23,"pineapple"} {2,"pear"} {16,"cherry"} 在我对它们做任何其他事情之前,我需要按键对它们进行排序。我正在考虑编写一个比较器,但对于如何实现这一点,我有点不知所措。通常,任何类型中有散列名称的东西都不是用于排序的,至少不是大多数人排序的方式。散列结构正是如此高效,因为它们在散列中有自己的访问/检索函数,使得分配项不是以我们称之为

我有一个LinkedHashMap,它将订单号存储为键,将字符串值存储为值:

{12,"apple"}
{1,"grape"}
{23,"pineapple"}
{2,"pear"}
{16,"cherry"}

在我对它们做任何其他事情之前,我需要按键对它们进行排序。我正在考虑编写一个比较器,但对于如何实现这一点,我有点不知所措。

通常,任何类型中有
散列
名称的东西都不是用于排序的,至少不是大多数人排序的方式。散列结构正是如此高效,因为它们在散列中有自己的访问/检索函数,使得分配项不是以我们称之为“有序”的方式进行,因此,通过这种方式,它们的访问和写入效率非常高,但它们不允许这种排序。

通常,任何类型中包含
哈希
名称的内容都不用于排序,至少不是大多数人的排序方式。散列结构正是如此高效,因为它们在散列中有自己的访问/检索函数,使得分配项不是以我们称之为“有序”的方式进行,因此,通过这种方式,它们的访问和写入效率非常高,但它们不允许这种排序。

通常,任何类型中包含
哈希
名称的内容都不用于排序,至少不是大多数人的排序方式。散列结构正是如此高效,因为它们在散列中有自己的访问/检索函数,使得分配项不是以我们称之为“有序”的方式进行,因此,通过这种方式,它们的访问和写入效率非常高,但它们不允许这种排序。

通常,任何类型中包含
哈希
名称的内容都不用于排序,至少不是大多数人的排序方式。哈希结构正是如此高效,因为它们有自己的基于哈希的访问/检索函数,使得分配项不是以我们称之为“有序”的方式进行的,因此这种方式对于访问和写入非常有效,但它们不允许这种排序。

正如NKN之前所说,
HashMap
不需要订购。
LinkedHashMap
的好处是它维护了插入错误,但是它不提供排序机制

为了实现这一点,您需要创建一个POJO类来保存数据

public class fruit {
int count;
String name;

// getters and setter 
}
然后使该对象实现
Comparable
接口,并重写
compareTo()
方法。一旦完成,你可以打电话

Collections.sort(linkedHashMap)


正如NKN之前所说,
HashMap
,并不意味着要订购。
LinkedHashMap
的好处是它维护了插入错误,但是它不提供排序机制

为了实现这一点,您需要创建一个POJO类来保存数据

public class fruit {
int count;
String name;

// getters and setter 
}
然后使该对象实现
Comparable
接口,并重写
compareTo()
方法。一旦完成,你可以打电话

Collections.sort(linkedHashMap)


正如NKN之前所说,
HashMap
,并不意味着要订购。
LinkedHashMap
的好处是它维护了插入错误,但是它不提供排序机制

为了实现这一点,您需要创建一个POJO类来保存数据

public class fruit {
int count;
String name;

// getters and setter 
}
然后使该对象实现
Comparable
接口,并重写
compareTo()
方法。一旦完成,你可以打电话

Collections.sort(linkedHashMap)


正如NKN之前所说,
HashMap
,并不意味着要订购。
LinkedHashMap
的好处是它维护了插入错误,但是它不提供排序机制

为了实现这一点,您需要创建一个POJO类来保存数据

public class fruit {
int count;
String name;

// getters and setter 
}
然后使该对象实现
Comparable
接口,并重写
compareTo()
方法。一旦完成,你可以打电话

Collections.sort(linkedHashMap)

地图本质上是“无序/未排序”的集合,如果您需要类似的东西,您可以使用其他方法,如SparseArray(它更适合int/value元素),您可以创建int键列表,对其进行排序,然后通过迭代获得如下值:

//This would be your SparseArray
{12,"apple"}
{1,"grape"}
{23,"pineapple"}
{2,"pear"}
{16,"cherry"}

int[] sortedInt = {1,2, 12, 16, 23};//Previously sorted values using any Java sorting functionality
for(int i = 0 ; i < sortedInt.length; i++){
    String value = yourSparseArrat.get(sortedInt[i]);
}
//这将是你的SparseArray
{12,“苹果”}
{1,“葡萄”}
{23,“菠萝”}
{2,“梨”}
{16,“樱桃”}
int[]sortedInt={1,2,12,16,23}//以前使用任何Java排序功能对值进行排序
对于(int i=0;i
这样,通过对键进行排序,然后按顺序获取值,就可以得到所需的值

问候

本质上,贴图是“无序/未排序”集合,如果您需要类似的东西,您可以使用其他方法,如SparseArray(它更适合int/value元素),您可以创建int键列表,对其进行排序,然后通过迭代获得如下值:

//This would be your SparseArray
{12,"apple"}
{1,"grape"}
{23,"pineapple"}
{2,"pear"}
{16,"cherry"}

int[] sortedInt = {1,2, 12, 16, 23};//Previously sorted values using any Java sorting functionality
for(int i = 0 ; i < sortedInt.length; i++){
    String value = yourSparseArrat.get(sortedInt[i]);
}
//这将是你的SparseArray
{12,“苹果”}
{1,“葡萄”}
{23,“菠萝”}
{2,“梨”}
{16,“樱桃”}
int[]sortedInt={1,2,12,16,23}//以前使用任何Java排序功能对值进行排序
对于(int i=0;i
这样,通过对键进行排序,然后按顺序获取值,就可以得到所需的值

问候

本质上,贴图是“无序/未排序”集合,如果您需要类似的东西,您可以使用其他方法,如SparseArray(它更适合int/value元素),您可以创建int键列表,对其进行排序,然后通过迭代获得如下值:

//This would be your SparseArray
{12,"apple"}
{1,"grape"}
{23,"pineapple"}
{2,"pear"}
{16,"cherry"}

int[] sortedInt = {1,2, 12, 16, 23};//Previously sorted values using any Java sorting functionality
for(int i = 0 ; i < sortedInt.length; i++){
    String value = yourSparseArrat.get(sortedInt[i]);
}
//这将是你的SparseArray
{12,“苹果”}
{1,“葡萄”}
{23,“菠萝”}
{2,“梨”}
{16,“樱桃”}
int[]sortedInt={1,2,12,16