1.List集合遍历
方法1:for循环:遍历方式多种,可以从前往后遍历,也可以从后往前遍历,通过下标进行访问
for(int i = 0;i方法2:增强for循环:底层实现使用iterator迭代器
for(String str : list){ System.out.print(s); }方法3:迭代器
//使用 ListIterator迭代器 ListIteratorit = list.listIterator(list.size()-1);//获取迭代器对象 while(it.hasNext()) { //获取后一个 System.out.println(it.next()); } ListIterator it = list.listIterator(list.size()-1);//获取迭代器对象 while(it.hasPrevious()) { //获取前一个 System.out.println(it.previous()); } ListIterator迭代器可以从指定位置向前或者向后遍历
2.Set集合遍历
1.增强for循环
for(String str : set){ System.out.print(s); }2.迭代器
Iteratorit = set.Iterator();//获取迭代器对象 while(it.hasNext()) { //获取后一个 System.out.println(it.next()); } 3.Map集合遍历
1.通过遍历Key,获取对应的Value
for(String key : map.keySet){ Integer value = map.get(key); System.out.print(key+"-"+value); }2.通过遍历Entry集合,直接获取map的键值对对象
for(Entryentry:map.entrySet()) { System.out.println(entry); } 3. 使用迭代器
Iterator> it = map.entrySet.Iterator();//获取迭代器对象 while(it.hasNext()) { //获取后一个 System.out.println(it.next()); } 4.Queue遍历
1.while循环:遍历结束,队列为空,因为poll()方法会删除元素
String str; while((str = queue.poll() != null){ System.out.println(str); }2. 迭代器
Iteratorit = queue.iterator();//获取迭代器对象 while(it.hasNext()) { System.out.print(it.next()); } 5.Deque遍历
1.增强for循环
for(String str : deque){ System.out.println(str) }2.迭代器
Iteratorit = deque.iterator();//获取迭代器对象 while(it.hasNext()) { System.out.print(it.next()); } 3.while循环
String str; //从对头访问 while((str = deque.pollFirst() != null){ System.out.println(str); } //从对尾访问 while((str = deque.pollLast() != null){ System.out.println(str); }6.Stack遍历
1.增强for循环
for(String str : stack){ System.out.println(str) }2.迭代器
Iteratorit = stack.iterator();//获取迭代器对象 while(it.hasNext()) { System.out.print(it.next()); } 3.while循环
while(!stack.isEmpty()){ System.out.println(stack.pop()); }总结:
1.上述的六种集合都可采用增强for循环,而底层实现机制使用了迭代器进行遍历操作。
2.deque双端队列可根据自身数据结构的特点从对头进行遍历,也可以从队尾进行遍历。
3.list集合:有序、允许重复,有ArrayList和LinkedList;set集合:有HashSet无序、唯一LinkedHashSet 有序、唯一和TreeSet 自动排序、唯一;map集合:KV键值对方式存储、 Key键唯一,Value允许重复、无序;queue集合:先进先出(FIFO),queue是一个接口,有LinkedList和ArrayBlockingQueue两个实现类,只能从对头删除元素、从队尾添加元素;deque集合:双端队列,可以从对头或者队尾添加或删除元素;stack集合:后进先出(LIFO)。如有不当之处还请大家多多指正,一起学习,一起进步!



