迭代器:迭代器是一个对象,他的工作是遍历并选择序列中的对象,迭代器通常被称为轻量级对象,创建他的代价很小,java 的Iterator是能单项移动,这个Iterator只能用来:
1)使用iterator()返回一个Iterator对象,Iterator将准备好返回序列的第一个对象。
2)next()获得序列中的下一个元素。
3)是hasnext() 检查序列中是否还有元素。
4)是用remove()将迭代器新进去返回的元素删除。
class Pet{
String name = null;
public Pet(String petname){
name = petname;
}
public void getname(){
System.out.println("name:"+name);
}
}
public class SimpleIteration {
public static void main(String[] args) {
List<Pet> petlist = new ArrayList<Pet>();
petlist.add(new Pet("鹦鹉"));
petlist.add(new Pet("老鹰"));
Iterator<Pet> it = petlist.iterator();
while(it.hasNext()){
Pet pet = it.next();
pet.getname();
}
}
}
ListIterator 是Iterator的子类型,只能用于访问List类,可以双向移动
public class Listiterator {
public static void main(String[] args) {
List<Pet> petlist = new ArrayList<Pet>();
petlist.add(new Pet("鹦鹉"));
petlist.add(new Pet("老鹰"));
ListIterator<Pet> ll = petlist.listIterator();
while(ll.hasNext()){
Pet pet = ll.next();
pet.getname();
}
ll = petlist.listIterator(1);
while(ll.hasNext()){
Pet pet = ll.next();
pet.getname();
}
}
}
LinkedList :实现了基本的List接口,但是它执行某些操作时比Arraylist更高效,但随机访问逊色一点。
Set: Set不保存重复的元素,查找是Set中最重要的操作。
public class Setofinteger {
public static void main(String[] args) {
Set<Integer> setint = new HashSet<Integer>();
for(int i = 0;i<10;i++){
setint.add(new Random().nextInt(10));
}
System.out.println(setint);
}
}
打印的结果是[0, 2, 4, 6, 7, 9]