黑马程序员技术交流社区
标题:
List下ArrayList的用法
[打印本页]
作者:
追逐
时间:
2014-3-21 17:42
标题:
List下ArrayList的用法
本帖最后由 追逐 于 2014-3-21 19:26 编辑
import java.util.ArrayList;
import java.util.ListIterator;
/*
List
特有方法、凡是可以操作角标的方法都是该体系特有的方法
1、增加
add(index,element); 在角标为index的位置上插入element元素
addAll(index,Collection); 在角标位置为index的位置上插入一组元素
2、删除
remove(index); 删除角标位置为index上的元素
3、修改
set(index,element); 修改角标位置为index上的元素
4、查找
get(index); 查找角标位置为index上的元素
subList(from,to); 查找角标位置从from到to但并不包含to的一组元素
listIterator();
List集合特有的迭代器,ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException(并发修改异常)
所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的。
只能对元素进行判断,取出,删除的操作,
如果想要其他操作如添加。修改等,就需要使用其子接口,ListIterator;
该接口只能通过list集合的listIterator方法获取。
*/
class ListDemo
{
public static void main(String[] args)
{
//list();
list_1();
}
//List的简答应用
public static void list()
{
//创建一个集合容器,使用Collection的子类ArrayList
ArrayList s = new ArrayList();
//添加元素
s.add("java01");
s.add("java02");
s.add("java03");
p("添加前:" + s);
//增加元素
s.add(2,"java05"); //在角标位为2的位置插入元素
p("添加后:" + s);
s.remove(3); //删除角标位为3的元素
p("删除后:" + s);
s.set(2, "java08"); //把角标位为2的元素修改成java08
p("修改后:" + s);
p("查找的单个元素是:" + s.get(2)); //查找角标位为2的数组上的元素
p("查找到的多个元素:" + s.subList(0,3)); //以为此方法查找包含头,不包含尾。所以要查找到到所有元素。必须要比元素个数大1
}
//ListIterator的简单应用
public static void list_1()
{
ArrayList s = new ArrayList();
s.add("java01");
s.add("java02");
s.add("java03");
ListIterator li = s.listIterator();
//使用List特有的迭代器ListIterator
for(; li.hasNext(); )
{
Object obj = li.next(); //子类对象指向父类引用
if(obj.equals("java03"))
{
li.set("java---3"); //对迭代器中的元素进行修改
li.add("java-----3"); //对迭代器中的元素进行添加
}
}
p("从头往后遍历:" + s);
for(; li.hasPrevious(); )
{
p(li.previous()); //从后往前遍历
}
}
public static void p(Object obj)
{
System.out.println(obj);
}
}
复制代码
作者:
滔哥
时间:
2014-3-21 17:43
刷帖,也要刷好点啊,这样复制,代码不放代码区域
作者:
追逐
时间:
2014-3-21 19:02
额,没弄过啊。怎么弄啊????????
作者:
Asura
时间:
2014-5-5 17:11
顶一下…………
作者:
gma103
时间:
2014-5-5 17:21
看一下...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2