【发布时间】:2015-08-17 09:36:27
【问题描述】:
我有两个 ArrayList。一个具有整数值,另一个列表具有字符串。我必须在比较器接口中使用自定义排序来对整数 ArrayList 进行排序,以便字符串 ArrayList 基于它进行排序。如何更改以下代码以使用 Comparator 找到解决方案。
import java.util.*;
class ListTask
{
public static void main(String[] args)
{
List<String> l2 = new ArrayList();
List<Integer> l1 = new ArrayList();
Scanner in = new Scanner(System.in);
boolean err = false;
int n;
do
{
try
{
System.out.println("Please enter the number of values to be entered");
//to find the length of 2 lists l1 and l2
n= in.nextInt();
//add values to l1
System.out.println("Please enter the id ");
for(int i=0;i<n;i++)
{
l1.add(in.nextInt());
//to add values to l2
System.out.println("Please enter the name");
for(int i=0;i<n;i++)
{
l2.add(in.next());
err = false;
}
}
} catch(Exception e) {
System.out.println("Please enter a valid input");
}
} while(err);
//code to sort list l2 based on the list l1
for(int i=0;i<l1.size();i++)
{
for(int j=i+1;j<l1.size();j++)
{
if((l1.get(i)) > (l1.get(j)))
{
Collections.swap(l1, i, j);
Collections.swap(l2, i, j);
}
}
}
//displays the sorted values
display(l1, l2);
}
public static void display(List l1, List l2)
{
System.out.println("The sorted List is");
for(int i=0;i<l1.size();i++)
{
System.out.println("Id= "+ l1.get(i) + " Name= " + l2.get(i));
}
}
}
提前致谢。
【问题讨论】: