У меня есть два списка ArrayLists. Один с целыми значениями, а другой список имеет строку. Я должен использовать пользовательский сортировку в интерфейсе компаратора для сортировки целочисленного ArrayList, чтобы строка ArrayList сортировалась на основе этого. Как изменить следующий код, чтобы найти решение с помощью Comparator.Чтобы отсортировать ArrayList строк, используя отсортированный массив ArrayList целых чисел
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));
}
}
}
Заранее спасибо.
@khelwood Исправлено. – reporter