List
List集合是Collection集合的子接口,你里面的iterator()方法在我的List也可以用!
List集合是一个有序的集合,是可以有重复的元素 有序:指的是元素存储和取出是一致的!
Set集合:是另一个子接口:元素不能重复! treeSet hashSet
List集合的特有功能:
添加功能:
void add(int index,Object element):在指定位置添加指定的元素
获取功能:
Object get(int index):获取指定位置的元素
删除功能:
Object remove(int index):删除指定位置的元素,返回的就是删除的元素
list的迭代器:
List列表的迭代器
ListIterator listIterator():ListIterator 继承自 Collection中的
Iterator接口
替换功能:
Object set(int index,object element):将指定位置的元素用element该元素替代,返回的是需要被替代的元素!
代码:
public static void main(String[] args) {
List l = new ArrayList();
l.add("Hello");
l.add("World");
l.add("Java");
System.out.println(l);
//添加功能:void add(int index,Object element):在指定位置添加指定的元素
l.add(1, "爱");
System.out.println(l);
//获取功能: get(int index):获取指定位置的元素
System.out.println(l.get(1));
//删除功能:Object remove(int index):删除指定位置的元素,返回的就是删除的元素
System.out.println(l.remove(1));
System.out.println(l);
//Object set(int index,object element):将指定位置的元素用element该元素替代,返回的是需要被替代的元素!
System.out.println(l.set(1, "爱"));
System.out.println(l);
}
结果:
[Hello, World, Java]
[Hello, 爱, World, Java]
爱
爱
[Hello, World, Java]
World
[Hello, 爱, Java]
ListIterator
List集合专有迭代遍历方式ListIterator listIterator() ;
ListIterator接口:
boolean hasNext():表示正向遍历:是否有下一个可以迭代的元素
Object next():获取下一个元素
boolean hasPrevious():表示逆向遍历:是否有上一个可以迭代的元素
Object previous()返回列表中的前一个元素
有个顺序问题:要想使用逆向遍历,必须先向遍历,如果先逆向遍历,没意义,一般不这样使用!
list集合有3种遍历方式:
迭代器遍历方式替代掉普通for(get()/size()相结合)
迭代器遍历:
Iterator iterator()
ListIterator listiterator():列表迭代器!
代码:
public static void main(String[] args) {
List l = new ArrayList();
sdudent s1 = new sdudent("张三",20,"188");
sdudent s2 = new sdudent("李四",21,"186");
sdudent s3 = new sdudent("王五",22,"185");
l.add(s1);
l.add(s2);
l.add(s3);
//使用for循环遍历
for(int x = 0;x<l.size();x++){
sdudent s = (sdudent)l.get(x);
System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());
}
System.out.println("----------------");
//使用迭代器遍历
Iterator lt= l.iterator();
while(lt.hasNext()){
sdudent s = (sdudent)lt.next();
System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());
}
System.out.println("----------------");
//使用列表迭代器遍历
ListIterator li= l.listIterator();
while(li.hasNext()){
sdudent s = (sdudent)li.next();
System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());
}
System.out.println("----------------");
//倒序
while(li.hasPrevious()){
sdudent s = (sdudent)li.previous();
System.out.println(s.getAge()+"-"+s.getName()+"-"+s.getWeight());
}
}
结果
20-张三-188
21-李四-186
22-王五-185
20-张三-188
21-李四-186
22-王五-185
20-张三-188
21-李四-186
22-王五-185
22-王五-185
21-李四-186
20-张三-188