Collection接口实现类的特点:
public interface Collection extends Iterable
以 ArrayList 实现类来演示:
import java.util.ArrayList;
import java.util.List;public class CollectionMethod {public static void main(String[] args) {//1.add:添加单个元素List list = new ArrayList();list.add("字符串");list.add(128);//list.add(new Integer(10))list.add(true);System.out.println("list="+list);//list=[字符串, 128, true]//2.remove:删除指定元素//list.remove(0);//删除第一个元素//System.out.println("list="+list);//list=[128, true]list.remove("字符串");//指定删除某个元素System.out.println("list="+list);//list=[128, true]//3.contains:查找某个元素是否存在System.out.println(list.contains(128));//true//4.size:返回元素个数System.out.println(list.size());//2//5.isEmpty:判断是否为空System.out.println(list.isEmpty());//false//6.clear:清空list.clear();System.out.println("list= "+list);//list= []//7.addAll:添加多个元素ArrayList list2 = new ArrayList();list2.add("开心");list2.add("每");list2.add(1);list2.add("天");list.addAll(list2);//传入一个集合System.out.println("新的list:"+list);//新的list:[开心, 每, 1, 天]//8.containsAll:查找多个元素是否存在System.out.println(list.containsAll(list2));//true//9.removeAll:删除多个元素list.removeAll(list2);System.out.println("list="+list);//list=[]}
}
迭代器执行原理:
Iterator iterator = new coll.iterator(); 得到一个集合迭代器
hasNext() :判断是否还有下一个元素
while(iterator.hasNext()){next()作用:指针下移,将下移后以后集合位置上的元素返回System.out.println(iterator.next());
}
每 next() 一次,箭头下移一次:

注意:在调用 iterator.next( ) 方法之前,必须要调用iterator.hasNext( ) 进行检测;若不调用,且下一条记录无效,直接调用 iterator.next( ) 会抛出 NoSuchElementException异常。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class CollectionIterator {public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("三国演义","罗贯中",10.1));col.add(new Book("红楼梦","曹雪芹",34.6));col.add(new Book("西游记","吴承恩",28.8));System.out.println("col : "+col);
//col : [Book{name='三国演义', author='罗贯中', price=10.1}, Book{name='红楼梦', author='曹雪芹', price=34.6}, Book{name='西游记', author='吴承恩', price=28.8}]//遍历 col//1.先得到col集合对应的迭代器Iterator iterator = col.iterator();//2.使用while循环遍历//快捷键快速生成while循环 输入itit回车即可//crtl+j 可以查看当前所有快捷键while(iterator.hasNext()){ //判断是否还有数据//next()返回下一个元素,类型是ObjectObject obj = iterator.next();System.out.println(obj);//Book{name='三国演义', author='罗贯中', price=10.1}//Book{name='红楼梦', author='曹雪芹', price=34.6}//Book{name='西游记', author='吴承恩', price=28.8}//3.当退出while循环后,此时iterator迭代器指向最后的元素//iterator.next(); --> NoSuchElementException//4.若还要使用迭代器,需要重置迭代器iterator = col.iterator(); }}
}class Book{private String name;private String author;private double price;public Book(String name, String author, double price) {this.name = name;this.author = author;this.price = price;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +'}';}
}
增强for循环,可以代替 iterator迭代器,特点:增强for循环就是简化版的iterator,本质一样,只能用于遍历集合或数组;
基本语法:
for(元素类型 元素名 : 集合名或数组名){访问元素
}
import java.util.ArrayList;
import java.util.Collection;public class CollectionIterator {public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("三国演义","罗贯中",10.1));col.add(new Book("红楼梦","曹雪芹",34.6));col.add(new Book("西游记","吴承恩",28.8));//增强for循环 不仅可以用于集合,数组也同样适用//底层仍然是迭代器iterator 相当于简化版迭代器//快捷键 输入I后回车for (Object book:col) {System.out.println(book);}//Book{name='三国演义', author='罗贯中', price=10.1}//Book{name='红楼梦', author='曹雪芹', price=34.6}//Book{name='西游记', author='吴承恩', price=28.8}}
}class Book{private String name;private String author;private double price;public Book(String name, String author, double price) {this.name = name;this.author = author;this.price = price;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +'}';}
}
上一篇:俄语谚语
下一篇:能够体现出小草精神的古诗有哪些