方法:通过反射得到ArrayList的add()方法,用invoke调用这个方法并通过这个方法将字符串添加到集合中去。
上代码:
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= 6; i++) {
list.add(i);
}
String str = "字符串";
Method add = list.getClass().getMethod("add", Object.class);
add.invoke(list, str);
ListIterator<Integer> iterator = list.listIterator();
while (iterator.hasNext()){
System.out.print(iterator.next()+" ");
//1 2 3 4 5 6 字符串
}
题外:正常情况下用ListIterator去遍历它的光标在第一位,所以如果我们要用iterator去逆序遍历需要先正向遍历,将光标移到最后一位,再从后向前遍历。
不过其实不用这么麻烦,我们可以直接在listIterator()中去指定光标位置就可以了。
上代码:
ListIterator<Integer> iterator = list.listIterator(list.size());
// while (iterator.hasNext()){
// System.out.print(iterator.next()+" ");
// }
while (iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
//字符串 6 5 4 3 2 1
}
当然如果想要逆序也可以直接用Collections下的reverse()方法将list中元素反转就可以了,这里就不多说了。