Есть две подзадачи.
1- Сравнение двух огромных массивов
2- Сортировка элементов массива по значениям его объекта для достижения (1).
У меня есть ArrayList объектов класса. т.е.
Class X
{
double x;
double y;
int sortVal;
}
ArrayList<X> alX = new ArrayList<X>(); //size = 10,000
ArrayList<Integer> myValue = new ArrayList<Integer>(); //size = 15
Я хочу проверить, присутствует ли myValue в sortVal.
X ob = new X();
for(i=0;i<myValue.size();i++)
{
for(j=0;j<alX.size();j++)
{
ob = alX.get(j)
**if (myValues.get(i) == ob.sortVal)**
}
}
Поскольку размер массива 'alX' огромен, он занимает много времени на вычисления.
Я думал, что лучшим способом будет сортировка элементов ArrayList alX на основе значений sortVal класса X. С помощью сортировки, когда sortVal больше myValue, я могу выйти из цикла.
1) как можно отсортировать элементы массива alX на основе значения sortVal.
2) Есть ли лучший подход, чем сортировка массива, для сравнения двух значений. т.е. (myValues.get (i) == alX.ob.sortVal)
[править] Учитывайте значения,
ArrayList<X>:
x : 1,1,1,2,3,5,4,5
y : 2,4,6,4,4,6,2,1
sortVal: 10,20,30,10,10,20,30
ArrayList<Integer>:
myValue: 10,20,30