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>