Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对两个ArrayList进行相应排序-Android_Android_Sorting_Arraylist - Fatal编程技术网

对两个ArrayList进行相应排序-Android

对两个ArrayList进行相应排序-Android,android,sorting,arraylist,Android,Sorting,Arraylist,我有两个ArrayList,即“名称”和“Id”(“名称”包含客户的名称,“Id”包含客户的Id。它们都是通过web服务填充的。我将“名称”添加到微调器中,如果我在微调器中选择任何名称,则会选择相应的Id 现在我想显示在微调器中排序的“名称”。但如果我这样做,我将丢失与名称位于相同位置的相应“Id”,但由于我更改了“名称”的顺序,因此我无法根据名称获取相应的Id 我想对它们进行排序,如果将位置3处的名称移动到位置10,则其对应的Id(位于位置3处的不同ArrayList中)也应移动到位置10

我有两个ArrayList,即“名称”和“Id”(“名称”包含客户的名称,“Id”包含客户的Id。它们都是通过web服务填充的。我将“名称”添加到微调器中,如果我在微调器中选择任何名称,则会选择相应的Id

现在我想显示在微调器中排序的“名称”。但如果我这样做,我将丢失与名称位于相同位置的相应“Id”,但由于我更改了“名称”的顺序,因此我无法根据名称获取相应的Id

我想对它们进行排序,如果将位置3处的名称移动到位置10,则其对应的Id(位于位置3处的不同ArrayList中)也应移动到位置10

  ArrayList<String> Id = new ArrayList<String>();
  ArrayList<String> Name = new ArrayList<String>();
ArrayList Id=new ArrayList();
ArrayList Name=新的ArrayList();

请在这方面帮助我。

您可以创建一个类MyClass

class MyClass{
int Id ;
String Name;
}
然后创建一个数组列表

ArrayList<MyClass> arr = new ArrayList<MyClass>();

比较器是更好的选择

     Comparator<HashMap<String, String>> comparator = new Comparator<HashMap<String, String>>() {                                    
        @Override
        public int compare(HashMap<String, String> object1, HashMap<String, String> object2) 
        {       
                return object1.get("Id").compareToIgnoreCase(object2.get("Id"));
        }
};      
Collections.sort(groupData, comparator);
Comparator Comparator=new Comparator(){
@凌驾
公共int比较(HashMap对象1、HashMap对象2)
{       
返回object1.get(“Id”).compareToIgnoreCase(object2.get(“Id”));
}
};      
Collections.sort(groupData、comparator);

Id'是散列中排序的键,可以用一个
ArrayList
和一个
HashMap
对其进行管理,如下所示

  ArrayList<String> Name = new ArrayList<String>();
  Map<String, String> nameIdMap = new HashMap<String, String>();
nameIdMap.get(Name.get(i));
使用排序树形图:

Map<String, Float> map = new TreeMap<String, String>(yourMap);
It will automatically put entries sorted by keys. 
Map Map=newtreemap(yourMap);
它会自动将条目按键排序。

使用两个字符串创建一个新的类数据,一个用于名称,另一个用于id。现在使用数据类对名称进行排序。因此不会出现不匹配。请改用HashMap并对其进行排序。
nameIdMap.get(Name.get(i));
Map<String, Float> map = new TreeMap<String, String>(yourMap);
It will automatically put entries sorted by keys.