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