Я пытаюсь сортировать ведро ArrayList объектов. Объекты являются общими (не уверен, что я использую правильную терминологию здесь) в том смысле, что они состоят из int (ключа) и общего объекта (E). Похоже, это:Создание ArrayList общих шаблонов ArrayLists в Java
public pair(int key, E value){
this.key = key;
this.value = value;
}
В моем методе сортировки, я пытаюсь создать ArrayList из ArrayLists, а затем сортировать по ключу объектов. Я не могу понять, как добавить новый ArrayList в ArrayList. Вот мой код, и я прокомментировал строку, на которой я знаю, что я ошибаюсь.
public ArrayList<V> bucketSort(ArrayList<V> entries) {
List<ArrayList<V>> bucket = new ArrayList<>();
for(int i = 0; i < entries.size(); i++){
int key = entries.get(i).getKey();
if (bucket.get(key) == null){
bucket.add(key, new ArrayList<V>()); //This is where things go bad
}
bucket.get(key).add(entries.get(i));
}
int k = 0;
for(int i = 0; i < bucket.size(); i++){
if(bucket.get(i) != null) {
for (int j = 0; j < bucket.get(i).size(); j++){
entries.set(k++, bucket.get(i).get(j));
}
}
}
return entries;
}
Я очень растерялся со всеми различными литья и прочее. Дженерики разочаровывают. Я уверен, что я неправильно создаю список ведер, или я пытаюсь добавить ArrayList в неправильный путь. Любой вход был бы оценен.
Ваш вопрос довольно запутан. Если вы хотите отсортировать список пар, как следует из вашего описания, сигнатура метода должна быть 'void sort (List>)'. Зачем вам нужен ArrayList из ArrayLists? –