프로그래밍/이펙티브 코딩 java iterable 사용하기 예재 낭만가을 2017. 1. 31. 10:47 import java.util.*; public class ListIterationExample { public static void main(String []args){ List<Integer> numbers = new ArrayList<Integer>(); // populates list with initial values for (Integer i : Arrays.asList(0,1,2,3,4,5,6,7)) numbers.add(i); printList(numbers); // 0,1,2,3,4,5,6,7 // replaces each element with twice its value for (int index=0; index < numbers.size(); index++) { numbers.set(index, numbers.get(index)*2); } printList(numbers); // 0,2,4,6,8,10,12,14 // does nothing because list is not being changed for (Integer number : numbers) { number++; // number = new Integer(number+1); } printList(numbers); // 0,2,4,6,8,10,12,14 // same as above -- just different syntax for (Iterator<Integer> iter = numbers.iterator(); iter.hasNext(); ) { Integer number = iter.next(); number++; } printList(numbers); // 0,2,4,6,8,10,12,14 // ListIterator<?> provides an "add" method to insert elements // between the current element and the cursor for (ListIterator<Integer> iter = numbers.listIterator(); iter.hasNext(); ) { Integer number = iter.next(); iter.add(number+1); // insert a number right before this } printList(numbers); // 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 // Iterator<?> provides a "remove" method to delete elements // between the current element and the cursor for (Iterator<Integer> iter = numbers.iterator(); iter.hasNext(); ) { Integer number = iter.next(); if (number % 2 == 0) // if number is even iter.remove(); // remove it from the collection } printList(numbers); // 1,3,5,7,9,11,13,15 // ListIterator<?> provides a "set" method to replace elements for (ListIterator<Integer> iter = numbers.listIterator(); iter.hasNext(); ) { Integer number = iter.next(); iter.set(number/2); // divide each element by 2 } printList(numbers); // 0,1,2,3,4,5,6,7 } public static void printList(List<Integer> numbers) { StringBuilder sb = new StringBuilder(); for (Integer number : numbers) { sb.append(number); sb.append(","); } sb.deleteCharAt(sb.length()-1); // remove trailing comma System.out.println(sb.toString()); } } 저작자표시 비영리 변경금지