ArrayList的迭代器只能向前,不能向后? 核心技术上说Iterator只有三个操作:hasNext,next,remove。如果我想让迭代器自由移动,而不是只向单方向移动,有什么办法吗?还有,ArrayList有没有一个常量指代第一个元素,即迅速得到第一个元素的引用,最好是用迭代器实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ArrayList.get(i)i从0开始,可以获得任意位置的元素i不可越限 为什么要用Iterator呢, 如果想自由的移动, 直接用get很方便啊, get(0) 就得到了第一个元素 Iterator 只能向后,不能向前的如果想随机访问,直接用 ArrayList.get(int index) 方法 ArrayList 本就是数组结构。要取第一个元素用get(0)就ok了,数组取每个元素都是按索引取的java.util.LinkedList 这个是链表结构的,有getFirst()方法取首元素, arraylist.listIterator() : java.util.ListIterator 不要用iterator用listIterator可以双向移动如下: public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 1; i < 10; i++) { list.add(i); } System.out.println("即迅速得到第一个元素: " + list.get(0)); System.out.println("反向遍历"); ListIterator<Integer> liter = list.listIterator(list.size()); while (liter.hasPrevious()) { System.out.println(liter.previous()); } } for(int i=arrayList.size()-1;i>=0;i--){ Object obj=arrayList.get(i);} for(int i=0;i<arrayList.size();;i++){ Object obj=arrayList.get(i);} ArrayList是List的子类。虽然叫List,但是它的数据结构实际是数组,一个动态数组。你要向前向后访问,那就用LinkedList,这才是真正的链表 我曾经试过,效率上Iterator会快很多 呃,就遍历而言效率因该是Iterator比较低吧,至少我以前测试都是这样的加强for循环对于容器类用的也是迭代器遍历,效率也要比for随机访问低一些 ArrayList底层是数组,不能倒退 骑士巡游问题java实现 聊天室程序的问题 请教下2个JTextpane之间的图片文字传输怎么实现? java播放wav的问题 JTextPane改变字体大小 java高手过来,急! sql问题?? java怎么打开excel文件呀 .例如:c:\demo.xls 连接数据库的一段程序 学姐学长谁能帮我解释一下 return (rs == null) || (rs.equals("")); 求一个解决思路 怎么获得字符串的最后一位字符 如何能使JButton在调用了setEnable(false) 方法后,按钮不可使用,但图像仍为正常图片,不变灰色?
i从0开始,可以获得任意位置的元素
i不可越限
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 1; i < 10; i++) {
list.add(i);
} System.out.println("即迅速得到第一个元素: " + list.get(0)); System.out.println("反向遍历");
ListIterator<Integer> liter = list.listIterator(list.size());
while (liter.hasPrevious()) {
System.out.println(liter.previous());
}
}
for(int i=arrayList.size()-1;i>=0;i--){
Object obj=arrayList.get(i);
}
Object obj=arrayList.get(i);
}
呃,就遍历而言效率因该是Iterator比较低吧,至少我以前测试都是这样的
加强for循环对于容器类用的也是迭代器遍历,效率也要比for随机访问低一些