import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
/*迭代器方法:
- hasNext():是否有元素可遍历
- next():获取元素
- remove():移除迭代器最后一次返回的元素
*/
public class Demo1 {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add(“haha1”);
c.add(“haha2”);
c.add(“haha3”);
c.add(“haha4”);
//遍历方式一:toArray()
Object [] arr=c.toArray();
System.out.println(Arrays.toString(arr));
//for(int i=0;i<arr.length;i++){
// System.out.println(arr[i]);
//}
//遍历方式二:iterator迭代器遍历
Iterator it=c.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
/*it.next();
it.next();
it.remove();*/
System.out.println(c.size());
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
/*
List接口中特有方法:
添加
add(int index, E element) //指定位置加入元素
addAll(int index, Collection<? extends E> c) //指定位置加入新集合
获取:
get(int index) //获取元素
indexOf(Object o) //集合中的元素位置。没有返回-1
lastIndexOf(Object o) //集合中出现元素的最后一个位置
subList(int fromIndex, int toIndex) //左开右闭截取集合元素
修改:
set(int index, E element) //指定位置修改元素
List接口中特有的方法具备的特点: 操作的方法都存在索引值。
只有List接口下面的集合类才具备索引值。其他接口下面的集合类都没有索引值。
迭代
listIterator
ListIterator特有的方法:
添加:
hasPrevious() 判断是否存在上一个元素。
previous() 当前指针先向上移动一个单位,然后再取出当前指针指向的元素。
//next(); 先取出当前 指针指向的元素,然后指针向下移动一个单位。
add(E e) 把当前有元素插入到当前指针指向的位置上。
set(E e) 替换迭代器最后一次返回的元素。
ctrl + shift + / 添加多行注释
ctrl + shift + \ 取消多行注释.
*/
public class Demo2 {
public static void main(String[] args) {
List list= new ArrayList();
list.add("haha1");
list.add("haha2");
list.add("haha3");
list.add("haha4");
System.out.println(list);
list.add(3,"haha5");
System.out.println(list);
List list2= new ArrayList();
list2.add("haha6");
list2.add("haha7");
list.addAll(2,list2);
System.out.println(list);
//遍历集合元素
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println(list.indexOf("haha7"));//不存在的元素返回-1
System.out.println(list.lastIndexOf("haha7"));
List list3=list.subList(1, 3);
System.out.println(list3);//左开右闭截取集合元素
list3.set(0, "hahahahahah");
System.out.println(list3);
ListIterator list4=list.listIterator();//迭代器
//倒序输出集合元素
while(list4.hasNext()){
list4.next();//指针先取值后往下移一位
}
while(list4.hasPrevious()){
System.out.println(list4.previous());//指针往上移一位再取值
}
System.out.println(list);
list4.next();
list4.add("12");
//list4.next();
list4.set("23");
System.out.println(list);
}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Demo3 {
public static void main(String[] args) {
List list=new ArrayList();
list.add("xiaoming1");
list.add("xiaoming2");
list.add("xiaoming3");
list.add("xiaoming4");
list.add("xiaoming5");
System.out.println(list);
//遍历方式一
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//遍历方式二(顺序)
Iterator it=list.iterator();//迭代器
while(it.hasNext()){
System.out.println(it.next());
}
//遍历方式三(倒序)
ListIterator it2=list.listIterator();
while(it2.hasNext()){
it2.next();
}
while(it2.hasPrevious()){
System.out.println(it2.previous());
}
}
}
import java.util.ArrayList;
import java.util.Iterator;
class Book{
int id;
String name;
public Book(int id,String name) {
// TODO Auto-generated constructor stub
this.id=id;
this.name=name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "{编号:"+this.id+" 名字:"+this.name+"}";
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
Book book=(Book) obj;
return this.id==book.id;
}
}
public class Demo4 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(new Book(1,"123"));
list.add(new Book(2,"456"));
list.add(new Book(3,"789"));
list.add(new Book(1,"234"));
System.out.println(list);
//创建一个新的集合
ArrayList list1=new ArrayList();
//迭代器
Iterator it=list.iterator();
while(it.hasNext()){
Book book=(Book) it.next();//创建一个新的对象接收返回值
//System.out.println(book);
if(!list1.contains(book)){
list1.add(book);
}
}
System.out.println(list1);
}
}