我试图对对象的ArrayList进行排序。这些对象是通用的(不知道我是否使用了正确的术语),因为它们由int(键)和通用对象(E)组成。看起来是这样的:在Java中创建通用ArrayList的ArrayList
public pair(int key, E value){
this.key = key;
this.value = value;
}
在我的排序方法,我尝试创建的ArrayList的一个ArrayList,然后排序对象的关键。我不知道如何添加一个新的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。任何输入将不胜感激。
你的问题很混乱。如果你想按照你的描述建议对一个List对进行排序,那么该方法的签名应该是'void sort(List>)'。为什么你需要ArrayList的ArrayList? –