java 工具类集合_Java工具类--List集合(一)

/**

* list集合使用

* List

* |--Vector

* |--ArrayList

* |--LinkedList

* 有序的 collection(也称为序列)。对列表中每个元素的插入位置进行精确地控制。

* 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

* 特有方法:

* 1,添加、2,删除、3,修改、4,获取、5,迭代器使用(重点)

*

*/

public class ListDemo {

public static void main(String[] args) {

List li = new ArrayList<>();

List lp = new ArrayList();

System.out.println("操作字符:");

fonctions(li);

//迭代器

iteratorf(li);

System.out.println("\n操作对象:");

fonctiono(lp);

//迭代器

iteratorw(lp);

System.out.println("\nlistIterator使用:");

listIterators(lp);

}

private static void fonctions(List li) {

//添加数据

li.add("小明");

li.add("小鹏");

li.add("小芳");

li.add("小莉");

System.out.println("打印数据源:"+li);

//根据位置添加

li.add(1, "周武");

System.out.println("角标插入数据:"+li);

//角标删除

System.out.println("角标删除数据:"+li.remove(1));

System.out.println("删除后数据:"+li);

//修改

System.out.println("修改数据:"+li.set(1, "shange"));

System.out.println("修改后数据:"+li);

//获取数据

System.out.println("获取数据:"+li.get(2));

}

private static void fonctiono(List lp) {

Personnel p = new Personnel("xiaofang",18);

lp.add(new Personnel("zhangsan",10));

lp.add(new Personnel("lisi",20));

lp.add(new Personnel("wangwu",30));

lp.add(p);

System.out.println("打印对象数据源:"+lp);

//根据位置添加

lp.add(1, new Personnel("大鹏",30));

System.out.println("打印对象角标插入位置数据:"+lp);

//角标删除

System.out.println("角标删除数据:"+lp.remove(2));

System.out.println("删除后数据:"+lp);

//修改

System.out.println("修改数据:"+lp.set(3,new Personnel("小芳",28)));

System.out.println("修改后数据:"+lp);

//获取数据

System.out.println("获取数据:"+lp.get(2));

}

private static void iteratorf(List li) {

System.out.println("for循环迭代数据:");

for (Iterator it = li.iterator();it.hasNext();) {

/**

* String s = it.next(); //此时出现ConcurrentModificationException异常

* if(s.equals(s)){

*li.add("xxx");

* }else

*/

System.out.println(it.next());

}

}

private static void iteratorw(List lp) {

System.out.println("while循环迭代数据:");

Iterator ip = lp.iterator();

while(ip.hasNext()){

System.out.println(ip.next());

}

}

/**

* 在使用Iterator迭代器中,操作list集合时,会出现ConcurrentModificationException异常。

* list集合中,特有listIterator迭代器。

*/

private static void listIterators(List lp) {

System.out.println("listIterators迭代器数据源:"+lp);

ListIterator lt = lp.listIterator();

while(lt.hasNext()){

Personnel p = lt.next();

if(p.getName().equals("zhangsan")){

p.setName("赵六");

p.setAge(30);

//替换

lt.set(p);

//添加不替换

lt.add(p);

}

}

System.out.println("listIterators迭代器操作后数据:"+lp);

}

}

运行结果:

操作字符:

打印数据源:[小明, 小鹏, 小芳, 小莉]

角标插入数据:[小明, 周武, 小鹏, 小芳, 小莉]

角标删除数据:周武

删除后数据:[小明, 小鹏, 小芳, 小莉]

修改数据:小鹏

修改后数据:[小明, shange, 小芳, 小莉]

获取数据:小芳

for循环迭代数据:

小明

shange

小芳

小莉

操作对象:

打印对象数据源:[zhangsan:10, lisi:20, wangwu:30, xiaofang:18]

打印对象角标插入位置数据:[zhangsan:10, 大鹏:30, lisi:20, wangwu:30, xiaofang:18]

角标删除数据:lisi:20

删除后数据:[zhangsan:10, 大鹏:30, wangwu:30, xiaofang:18]

修改数据:xiaofang:18

修改后数据:[zhangsan:10, 大鹏:30, wangwu:30, 小芳:28]

获取数据:wangwu:30

while循环迭代数据:

zhangsan:10

大鹏:30

wangwu:30

小芳:28

listIterator使用:

listIterators迭代器数据源:[zhangsan:10, 大鹏:30, wangwu:30, 小芳:28]

listIterators迭代器操作后数据:[赵六:30, 赵六:30, 大鹏:30, wangwu:30, 小芳:28]

接口 List

所有超级接口:Collection, Iterable

booleanadd(E e)

向列表的尾部添加指定的元素(可选操作)。

voidadd(int index, E element)

在列表的指定位置插入指定元素(可选操作)。

booleanaddAll(Collection extends E> c)

添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。

booleanaddAll(int index, Collection extends E> c)

将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。

voidclear()

从列表中移除所有元素(可选操作)。

booleancontains(Object o)

如果列表包含指定的元素,则返回 true。

booleancontainsAll(Collection> c)

如果列表包含指定 collection 的所有元素,则返回 true。

booleanequals(Object o)

比较指定的对象与列表是否相等。

Eget(int index)

返回列表中指定位置的元素。

inthashCode()

返回列表的哈希码值。

intindexOf(Object o)

返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。

booleanisEmpty()

如果列表不包含元素,则返回 true。

Iteratoriterator()

返回按适当顺序在列表的元素上进行迭代的迭代器。

intlastIndexOf(Object o)

返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。

ListIteratorlistIterator()

返回此列表元素的列表迭代器(按适当顺序)。

ListIteratorlistIterator(int index)

返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。

Eremove(int index)

移除列表中指定位置的元素(可选操作)。

booleanremove(Object o)

从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。

booleanremoveAll(Collection> c)

从列表中移除指定 collection 中包含的其所有元素(可选操作)。

booleanretainAll(Collection> c)

仅在列表中保留指定 collection 中所包含的元素(可选操作)。

Eset(int index, E element)

用指定元素替换列表中指定位置的元素(可选操作)。

intsize()

返回列表中的元素数。

ListsubList(int fromIndex, int toIndex)

返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。

Object[]toArray()

返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。

T[]toArray(T[] a)

返回按适当顺序(从第一个元素到最后一个元素)包含列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。

接口 ListIterator

所有超级接口:Iterator

voidadd(E e)

将指定的元素插入列表(可选操作)。

booleanhasNext()

以正向遍历列表时,如果列表迭代器有多个元素,则返回 true(换句话说,如果 next 返回一个元素而不是抛出异常,则返回 true)。

booleanhasPrevious()

如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。

Enext()

返回列表中的下一个元素。

intnextIndex()

返回对 next 的后续调用所返回元素的索引。

Eprevious()

返回列表中的前一个元素。

intpreviousIndex()

返回对 previous 的后续调用所返回元素的索引。

voidremove()

从列表中移除由 next 或 previous 返回的最后一个元素(可选操作)。

voidset(E e)

用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值