1.List集合遍历
方法1:for循环:遍历方式多种,可以从前往后遍历,也可以从后往前遍历,通过下标进行访问
for(int i = 0;i<list.size;i++){
System.out.print(list.get(i));
}
方法2:增强for循环:底层实现使用iterator迭代器
for(String str : list){
System.out.print(s);
}
方法3:迭代器
//使用 ListIterator迭代器
ListIterator<String> it = list.listIterator(list.size()-1);//获取迭代器对象 while(it.hasNext()) { //获取后一个
System.out.println(it.next());
}
ListIterator<String> 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.迭代器
Iterator<String> it = 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(Entry<String, Integer> entry:map.entrySet()) {
System.out.println(entry);
}
3. 使用迭代器
Iterator<Enter<String,Integer>> 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. 迭代器
Iterator<String> it = queue.iterator();//获取迭代器对象
while(it.hasNext()) {
System.out.print(it.next());
}
5.Deque遍历
1.增强for循环
for(String str : deque){
System.out.println(str)
}
2.迭代器
Iterator<String> it = 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.迭代器
Iterator<String> it = 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)。如有不当之处还请大家多多指正,一起学习,一起进步!