安卓 Java是一种反转ArrayList或对象列表的通用方法
我已经看到,有一种非常方便的方法可以使用Collections.reverse()
方法来反转ArrayList
{a1},但是我需要为几种类型的基本对象实现这样的反转操作,比如至少我的自定义对象的ArrayList
和List
。所以Collections
不能因为一个方法的长期使用而挽救我的生命
到目前为止,我成功地让stg工作(见下面的代码),但我必须编写两次:一次用于ArrayList,一次用于List。我给它们取了相同的名字,所以使用起来很方便,但是有些。。优化将更加方便:-)
如何将这两种方法通用化为一种(真正的)通用方法
Thx
/**
* Generic Reverse Method for ARRAYLIST using Iterator
* @param ArrayList<Obj_item> notReversed
* @return ArrayList<Obj_item> reversed
*/
@SuppressWarnings("unchecked")
public static <Obj_item> ArrayList<Obj_item> GenReverseArrayByIterator(ArrayList<Obj_item> mylist) {
// ^^^^^^^^^^^^^^^^^^ how to make this generic ?
// Instanciate
ArrayList<Obj_item> tmp = new ArrayList<Obj_item>();
ArrayList<Obj_item> reversed = new ArrayList<Obj_item>();
// Copy original list
tmp = mylist;
// Generate an iterator, starting right after the last element.
@SuppressWarnings("rawtypes")
ListIterator myIterator = tmp.listIterator(tmp.size());
// Iterate in reverse direction
while (myIterator .hasPrevious()) {
reversed.add((Obj_item) myIterator.previous());
}
return reversed;
}
# 1 楼答案
^{} 取
List<?>
ArrayList
实现List
——您可以在ArrayList
或任何List
实现上使用该方法。除非我误解了这个问题,否则你所做的似乎完全没有必要# 2 楼答案
下面的泛型方法应该反转任何类型的列表或ArrayList