List 的方法列表
方法名 | 功能说明 | |
---|---|---|
ArrayList() | 构造方法,用于创建一个空的数组列表 | |
add(E e) | 将指定的元素添加到此列表的尾部 | |
get(int index) | 返回此列表中指定位置上的元素 | |
size() | 返回此列表中的元素数 | |
clear() | 移除此列表中的所有元素 | |
isEmpty() | 如果此列表中没有元素,则返回true | |
remove(int index) | 移除此列表中指定位置上的元素 | |
indextof(Object o) | 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回-1 | |
toArray | 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组 |
下面将用一个简单的例子进行说明:
实现类ArrayList
package yjlblog;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test { public static void main(String[] args) { List list = new ArrayList();//List 是接口,用多态需要指向它的实现类 list.add("double kill"); list.add("three kill"); list.add("four kill"); list.add("pentakill"); System.out.println(list); //[double kill, three kill, four kill, pentakill] //默认调用的是tostring 方法,但是这个头string方法不是object里面的,可以查帮助文档可知,是继承的collection的一个方法 System.out.println(list.get(2)); //four kill String s = (String)list.get(2);//如果用定义变量的形式来表示的话,需要用到强制类型的转换,因为list。get()方法是object的类里的 System.out.println(list.isEmpty()); //false //list.clear(); //System.out.println(list.isEmpty()); //true //System.out.println(list.remove(2));//输出制定索引的 被“删除的元素” list.remove(1);//删除索引为“1” 的元素 System.out.println(list);//[double kill, four kill, pentakill],删除了索引为“1”的元素 System.out.println(list.indexOf("double kill"));//0 输出所指明字符串的 “索引值” System.out.println(list.size());// 3 ,返回数组的长度 Object[] obj = list.toArray(); System.out.println(obj.length); //数组的遍历 for 循环 for (int i = 0;i < list.size();i++) { System.out.print(list.get(i)+" "); } System.out.println(); //使用for each 语句 for (Object x:list) { System.out.print(x+" "); } System.out.println(); //使用迭代器 //1.先获得list集合的迭代器 Iterator iterator = list.iterator(); //2.通过它的hasNest方法,判断是否遍历完成,用循环实现 while (iterator.hasNext() == true) { //3.使用next方法,去除它的下一个元素 System.out.print(iterator.next()+" "); } System.out.println(); }}//再写上迭代器的说明//加上arraylist 和 linbkedlist的区别 和代码//加上后面的几个方法
实现类LinkedList
- List 接口的链接列表实现,实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List接口外,LinkedList类还为在列表的开头及结尾
get
,remove
,insert
元素提供了统一的命名方法。这些操作允许将链表列表表应作堆栈、队列、或双端队列。
LinkedList的部分方法
方法名 | 功能说明 | |
---|---|---|
addFirst(E e) | 将指定元素插入此列表的开头 | |
addLast(E e) | 将指定元素添加到此列表的结尾 | |
removeFirst() | 移除并返回此列表的第一个元素 | |
removeLast() | 移除并返回此列表的最后一个元素 | |
getFirst() | 返回此列表中的第一个元素 | |
getLast() | 返回此列表中的最后一个元素 |
package yjlblog;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test { public static void main(String[] args) { List list = new LinkedList();//List 是接口,用多态需要指向它的实现类 list.add("double kill"); list.add("three kill"); list.add("four kill"); list.add("pentakill"); System.out.println(list); //[double kill, three kill, four kill, pentakill] //和ArrayList 的其他方法都是一样的,只是加了一些方法
集合的遍历
从上面的例子中也有所提及,下面看代码
- 使用for 循环
- 使用
for -each
循环 - 使用Iterator(迭代器)接口
每个集合类都提供了iterator
方法以返回一个迭代器,通过这个迭代器,可以完成集合的遍历
或删除
操作,迭代器的使用步骤如下:
**** - 1.通过
Iterator
方法获得集合的迭代器 - 2.通过调用
hasNext
方法判断是否存在下一个元素 - 3.使用
next
方法,去除它的下一个元素
//数组的遍历 for 循环for (int i = 0;i < list.size();i++){ System.out.print(list.get(i)+" ");}System.out.println();//使用for each 语句for (Object x:list){ System.out.print(x+" ");}System.out.println();//使用迭代器//1.先获得list集合的迭代器Iterator iterator = list.iterator();//2.通过它的hasNest方法,判断是否遍历完成,用循环实现while (iterator.hasNext() == true){//3.使用next方法,去除它的下一个元素 System.out.print(iterator.next()+" ");}System.out.println();