gpt4 book ai didi

java - 如何按键对 ArrayList> 进行排序?

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:45 25 4
gpt4 key购买 nike

我正在构建一个食谱搜索应用程序,它从网站获取食谱数据并将其显示在应用程序的结果页面上(它使用 JSON)。我查看了网上的教程,发现 ArrayList 中的 HashMap 对于此类功能很常见,因此我使用了 LinkedHashMap,因为我对插入顺序感兴趣。

信息结果在配方页面上显示良好。由于我的菜谱页面可以包含超过 20 个菜谱(取决于所使用的搜索词),我希望用户可以选择通过单击按钮来查看结果列表。

enter image description here

这是我如何填充数组列表的 fragment 。

static ArrayList<LinkedHashMap<String,String>> pairs = new ArrayList<LinkedHashMap<String,String>>();  
LinkedHashMap<String, String> map;

for (i=0; i<matches.length(); i++){
map = new LinkedHashMap<String, String>();

map.put("id", id);
map.put("name", name);
map.put("rating", rating);
map.put("source", source);
pairs.add(map);
}

下面是我的数组列表的示例(打印出来)

{id=1518539, name=Slow Cooker Mac and Cheese, rating=4, source=Merlot Mommy}
{id=1522143, name=Crock Pot Chicken Stroganoff, rating=4, source=Diethood}
{id=1506448, name=Slow Cooker Lemon-Garlic Chicken, rating=4, source=Magic Skillet}
{id=1520809, name=Chicken Tortilla Soup, rating=4, source=How does your garden grow}

这是我的操作栏onOptionsItemSelected方法

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case R.id.a_z:
//sort recipe name alphabetically
case R.id.z_a:
//sort recipe name reverse alphabetically

case R.id.by_rating:
//sort rating by highest values

default:
return super.onOptionsItemSelected(item);
}

}

那么,我该如何对此列表进行排序,我们以按字母顺序为例。

最佳答案

正如@LouisWasserman所说,你应该有一个类而不是一个 map 。但答案是您可以使用 Collections.sort 和自定义比较器。不同的比较器类别 - 每种模式 1 个。例如,两个名称可以链接到一个字符串比较器来比较它们的名称。

关于java - 如何按键对 ArrayList<LinkedHashMap<String,String>> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35664821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com