java集合框架——List
2016-03-20 15:22
507 查看
一、List接口概述
List有个很大的特点就是可以操作角标。下面开始介绍List接口中相对于Collection接口比较特别的方法。在Collection接口中已经介绍的方法此处就不再赘述。
1.添加
void | add(int index,E element) 在列表的指定位置插入指定元素(可选操作)。 |
boolean | addAll(int index, Collection<? extendsE> c) 将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。 |
2.删除。
E | remove(int index) 移除列表中指定位置的元素(可选操作)。 |
3.修改
E | set(int index,E element) 用指定元素替换列表中指定位置的元素(可选操作)。 |
4.查找
E | get(int index) 返回列表中指定位置的元素。 |
int | indexOf(Object o) 返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。 |
int | lastIndexOf(Object o) 返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。 |
List<E> | subList(int fromIndex,int toIndex) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。 |
5.List接口的特有方法:listIterator
ListIterator<E> | listIterator() 返回此列表元素的列表迭代器(按适当顺序)。 |
ListIterator<E> | listIterator(int index) 返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。 |
package p02.VectorDemo;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;
public class VectorDemo
{
public staticvoid main(String[] args) {
Vector v=new Vector();
v.add("abc1");
v.add("abc2");
v.add("abc3");
v.add("abc4");
Demo1(v);
Demo2(v);
}
private staticvoid Demo2(Vector v) {
for(Iterator it=v.iterator();it.hasNext();)
{
System.out.println(it.next());
}
}
private staticvoid Demo1(Vector v)
{
for (Enumeration e = v.elements(); e.hasMoreElements();)
{
System.out.println(e.nextElement());
}
}
}
View Code
使用for循环遍历容器是最靠谱的,这是应当注意的地方。
三、LinkedList类
1.概述。LinkedList底层是链表数据结构,这就导致了它的内容在内存中并不是连续的。这也使得它增删速度快而查询速度慢。注意,LinkedList中存储的都是对象的地址,即引用,而非对象本身
2.LinkedList特有的方法。
2.1.添加。
void | addFirst(E e) 将指定元素插入此列表的开头。 |
void | addLast(E e) 将指定元素添加到此列表的结尾。 |
E | removeFirst() 移除并返回此列表的第一个元素。 |
E | removeLast() 移除并返回此列表的最后一个元素。 |
E | pollFirst() 获取并移除此列表的第一个元素;如果此列表为空,则返回 null。 |
E | pollLast() 获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。 |
2.3.获取。
E | getFirst() 返回此列表的第一个元素。 |
E | getLast() 返回此列表的最后一个元素。 |
E | peekFirst() 获取但不移除此列表的第一个元素;如果此列表为空,则返回 null。 |
E | peekLast() 获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null。 |
四、ArrayList类
1.概述。ArrayList和Vector类几乎相同,略。
但需要注意的是,ArrayList中存储的是对象的引用,即地址,而非对象本身。如果ArrayList容器发生了al.add(3);这种情况,但是编译器并没有报错,不能认为是集合中可以存储基本数据类型,事实上在这个过程中发生了两件事:自动装箱以及上转型。这和Object obj=3;有着异曲同工之妙。
2.方法。
略。
注意,虽然ArrayList略掉很多,但并不是说它不重要,只是因为方法中和List接口中的差不多,所以就不做介绍了。实际上在开发中最常使用的类就是ArrayList。
相关文章推荐
- 试着用java实现DNS(一)——DatagramSocket, DatagramPacket, Message
- 20145325张梓靖 《Java程序设计》第3周学习总结
- java web 加载配置文件信息
- Java解析Json数据
- 12个小技巧,让你高效使用Eclipse
- javassist两个jar包导致:.Department_$$_javassist_1 cannot be cast to javassist.util.proxy.Proxy
- MyEclipse代码提示快捷键和常用设置
- 224. Basic Calculator | Java最短代码实现
- 12个小技巧,让你高效使用Eclipse
- #20145205 《Java程序设计》第3周学习总结
- spring4框架搭建
- Struts2基于注解配置action
- java多线程之(suspend()、resume())
- 大家一起和snailren学java-(二)一切都是对象
- Java web中使用Log4j记录日志信息
- Java多线程学习-并发编程实践基本概念总结整理
- JAVA对象和类
- Spring实例一
- 触发Full gc条件
- 不使用中间变量交换两个变量的值