List、Set、Map 集合遍历 小结

List、Set 继承自Collection接口。

LIst:元素是有序的,元素可以重复。因为该集合体系有索引。

Set:元素是无序的,元素不可以重复。

Map:Map不继承Collection接口。Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。

下面就是List、Set、Map的集合遍历的具体代码:

package net.qbzhong.disc.test;

public class Book {
	private String book_id;
	private String name;
	private Double price;
	public String getBook_id() {
		return book_id;
	}
	public void setBook_id(String book_id) {
		this.book_id = book_id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(Double price) {
		this.price = price;
	}
	public Book(){
		
	}
	public Book(String book_id, String name, Double price) {
		super();
		this.book_id = book_id;
		this.name = name;
		this.price = price;
	}
	
}
<span style="font-size:14px;">package net.qbzhong.disc.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class Test {


	public static void main(String[] args) {
		ArrayList<Book> list = new ArrayList<Book>();
		Set<Book> set = new HashSet<Book>();
		HashMap<String, Book> map = new HashMap<String, Book>();
		for(int i=0;i<10;i++){
			Book book = new Book("book_"+i,"book"+i,10.00*i);
			list.add(book);
			set.add(book);
			map.put(i+"", book);
		}
		/**
		 * List 集合遍历:
		 */
		//foreach遍历List
		for(Book book : list){
			System.out.println("foreach遍历list--书本名:"+book.getName());
		}
		//普通for循环遍历list
		for(int i=0;i<list.size();i++){
			System.out.println("普通for循环遍历list--书本名:"+list.get(i).getName());
		}
		//使用迭代器遍历list,while循环
		Iterator<Book> it = list.iterator();
		while(it.hasNext()){
			System.out.println("使用迭代器遍历list--书本名:"+it.next().getName());
		}
		//使用迭代器遍历list,for循环
		for(Iterator<Book> it1 = list.iterator();it1.hasNext();){
			System.out.println("使用迭代器遍历list,for循环--书本名:"+it1.next().getName());
		}
		/**
		 * Set集合遍历
		 */
		//foreach遍历Set
		for(Book book : set){
			System.out.println("foreach遍历Set--书本名:"+book.getName());//此时输出是无序的!!!
		}
		//使用迭代器遍历set,while循环
		Iterator<Book> it2 = set.iterator();
		while(it2.hasNext()){
			System.out.println("使用迭代器遍历set--书本名:"+it2.next().getName());//此时输出是无序的!!!
		}
		//使用迭代器遍历set,for循环
		for(Iterator<Book> it3 = set.iterator();it3.hasNext();){
			System.out.println("使用迭代器遍历set,for循环--书本名:"+it3.next().getName());//此时输出是无序的!!!
		}
		/**
		 * Map集合遍历
		 */
		//foreach遍历map---1
		for(Book book : map.values()){
			System.out.println("foreach遍历map--书本名:"+book.getName());
		}
		//foreach遍历map---2
		for(String key : map.keySet()){
			System.out.println("foreach遍历map--书本名:"+map.get(key).getName());
		}
		//普通for循环遍历map
		for(int i=0;i<map.size();i++){
			System.out.println("普通for循环遍历map--书本名:"+map.get(i+"").getName());
		}
		//使用迭代器遍历map,while循环
		Iterator<String> it4 = map.keySet().iterator();
		while(it4.hasNext()){
			String key = it4.next();
			System.out.println("使用迭代器遍历map--书本名:"+ map.get(key).getName());
		}
		//使用迭代器遍历map,for循环
		//这种方式,此处就略显繁琐了。。。
		for(Iterator<String> it5 = map.keySet().iterator();it5.hasNext();){
			System.out.println("使用迭代器遍历map,for循环--书本名:"+map.get(it5.next()).getName());
		}
	}

}
</span>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区

领取腾讯云代金券