想請問一下大家
我想要用arraylist裡的remove去移除內容
卻發現用一般的想法好像不行
實際上這個list應該還保有3, 但是好像不能用list.size去判斷Arraylist的大小
(因為一刪除size就會改變?, 位置好像也跟著改???)
還是要怎麼處理呢??
我想要用arraylist裡的remove去移除內容
卻發現用一般的想法好像不行
1
2
3
4
5
6
7
8
9
10
11
12
13
| ArrayList<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(2); list.add(3); list.add(1); list.add(2); System.out.println(list); for (int i=0;i<list.size();i++){ if(list.get(i)<3); list.remove(i); } System.out.println(list); |
實際上這個list應該還保有3, 但是好像不能用list.size去判斷Arraylist的大小
(因為一刪除size就會改變?, 位置好像也跟著改???)
還是要怎麼處理呢??
解決辦法:使用Iterator
1
2
3
4
5
| for( java.util.Iterator<Integer> allElements=list.listIterator(); allElements.hasNext(); ){ Integer currentElement = allElements.next(); if( currentElement < 3 ) allElements.remove(); } |
沒有留言:
張貼留言