java基础知识总结(29)
List系列
List系列的类均实现List接口,大部分的类都以List作为类名的后缀,也有部分该体系中的类命名比较特殊。
该系列中的类,比较常见的有ArrayList和LinkedList两个。其中ArrayList是以数组为基础实现的List,而LinkedList则是以链表为基础实现的List,ArrayList拥有数组的优点,而LinkedList拥有链表的优点。
由于该体系中的类均实现List接口,所以在这些类的内部,相同的功能方法声明是保持一致的,下面进行一一介绍:
a、add方法
boolean add(Object o)
该方法的作用是追加对象o到已有容器的末尾。
另外一个add方法:
void add(int index, Object element)
该方法的作用是将对象element插入到容器中索引值为index的位置,原来位于该位置的对象以及后续的内容将依次向后移动。
b、addAll方法
boolean addAll(Collection c)
该方法的作用是将容器对象c中的每个元素依次添加到当前容器的末尾。
另外一个addAll方法:
boolean addAll(int index, Collection c)
该方法的作用是将容器对象c中的第一个元素插入到当前容器中索引值为index的位置,第二个元素插入到当前容器中索引值为index+1的位置,依次类推。而当前容器中原来位于index以及index索引值以后的元素则依次向后移动。
c、get方法
Object get(int index)
该方法的作用是返回当前容器对象中索引值为index的元素的内容。
d、indexOf方法
int indexOf(Object o)
该方法的作用是查找当前容器中是否存在对象o,如果存在则返回该对象第一次出现位置的索引值,如果不存在则返回-1。
另外一个方法lastIndexOf则是从末尾向前查找,返回从末尾向前第一次出现位置的索引值,如果不存在则返回-1。
e、remove方法
Object remove(int index)
该方法的作用是删除索引值为index的对象的内容,如果删除成功则返回被删除对象的内容。
另外一个remove方法:
boolean remove(Object o)
该方法的作用是删除对象内容为o的元素,如果相同的对象有多个,则只删除索引值小的对象。如果删除成功则返回true,否则返回false。
无论使用哪一个remove方法,类内部都自动移动将被删除位置后续的所有元素向前移动,保证索引值的连续性。
f、set方法
Object set(int index, Object element)
该方法的作用是修改索引值为index的内容,将原来的内容修改成对象element的内容。
g、size方法
int size()
该方法的作用是返回当前容器中已经存储的有效元素的个数。
h、toArray方法
Object[] toArray()
该方法的作用是将当前容器中的元素按照顺序转换成一个Object数组。
下面是一个简单的以ArrayList类为基础实现的List系列中类基本使用的示例,代码如下:
import java.util.*;
/**
*以ArrayList类为基础演示List系列类的基本使用
*/
public class ArrayListUse {
public static void main(String[] args) {
//容器对象的初始化
List list = new ArrayList();
//添加数据
list.add("1");
list.add("2");
list.add("3");
list.add("1");
list.add("1");
//插入数据
list.add(1,"12");
//修改数据
list.set(2, "a");
//删除数据
list.remove("1");
//遍历
int size = list.size(); //获得有效个数
//循环有效索引值
for(int i = 0;i < size;i++){
System.out.println((String)list.get(i));
}
}
}
该程序的运行结果为:
12
a
3
1
1
在List系列中,还包含了Stack(栈)类和Vector(向量)类,Stack类除了实现List系列的功能以外,还实现了栈的结构,主要实现了出栈的pop方法和入栈的push方法。
而Vector类由于需要兼容老版本JDK中缘故,所以在实现的方法中需要提供老版本Vector类中对应的方法,这样导致Vector类中相同或类似的功能方法一般是成对出现的。