LinkedList集合
ArrayList集合在查询元素时速度很快,但在增删元素时效率较低,LinkList集合内部维护了一个双向循环链表,链表中的每个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来,可以增加增删操作所具有的效率
package pk_01;
import java.util.Iterator;
import java.util.LinkedList;
public class Example02 {
public static void main(String[] args) {
LinkedList<String> link=new LinkedList<String>();
link.add("stu1");
link.add("stu2");
link.add("stu3");
link.add("stu4");
System.out.println(link.toString());//打印出该集合中的元素
link.add(3, "studnet");//在集合指定位置插入元素
System.out.println(link.toString());
link.addFirst("first");//在集合第一个位置插入元素
System.out.println(link.toString());
link.addLast("last");//在集合最后一个位置插入元素
System.out.println(link.toString());
System.out.println(link.getFirst());
link.remove(3);//移除该集合中指定的元素
System.out.println(link.toString());
link.removeLast();//移除第一个元素
System.out.println(link.toString());
Iterator<String> it=link.iterator();
while (it.hasNext()) {
Object obj=it.next();
System.out.println(obj);
}
}
}
运行结果为:
[stu1, stu2, stu3, stu4]
[stu1, stu2, stu3, studnet, stu4]
[first, stu1, stu2, stu3, studnet, stu4]
[first, stu1, stu2, stu3, studnet, stu4, last]
first
[first, stu1, stu2, studnet, stu4, last]
[first, stu1, stu2, studnet, stu4]
first
stu1
stu2
studnet
stu4
----------------------------------------------------------------------------------------------------------------------------------
Iterator接口
Iterator接口主要用于遍历集合中的元素也是Java集合框架中的一员,但是它与Collection,Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(及遍历)Collection中的元素,因此Iterator对象也被称为迭代器。
Iterator<String> it=link.iterator();
while (it.hasNext()) {
Object obj=it.next();
System.out.println(obj);
}
用next()方法获取元素时,必须要保证获取的元素存在,否则会抛出异常