博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List基本用法
阅读量:4483 次
发布时间:2019-06-08

本文共 3270 字,大约阅读时间需要 10 分钟。

  List最为Collection接口的子接口,当然可以使用Collection接口里的全部方法。而且由于List是有序集合,因此List集合里增加了一些根据索引来操作集合元素的方法:

public class ListTest {    public static void main(String[] args) {        List names = new ArrayList();        //向names集合中添加三个元素        names.add("lmx");        names.add("wgl");        names.add(new String("孙悟空"));        System.out.println(names);        //将新字符串对象插入在第二个位置        names.add(1, new String("猪八戒"));        //使用for循环遍历list        for(int i = 0; i < names.size(); i++) {            System.out.println(names.get(i));        }        //删除第三个元素        names.remove(2);        System.out.println(names);        //判断指定元素在List集合中的位置:输出1,表明位于第二位        System.out.println(names.indexOf(new String("猪八戒")));        //将第二个元素替换成新的字符串对象        names.set(1, new String("沙僧"));        System.out.println(names);        //将names集合的第二个元素(包括)到第三个元素(不包括)截取成子集合        System.out.println(names.subList(1, 2));    }}

  List判断两个对象只要通过Equals()方法比较返回true即可,所以如果一个对象重写了equals()方法且返回值总是true,那么跟List集合中的元素比较时总是相等。看下面程序:

class A {    public boolean equals(Object obj) {        return true;    }}public class ListTest2 {    public static void main(String[] args) {        List names = new ArrayList();        names.add(new String("lmx"));        names.add(new String("wgl"));        names.add(new String("孙悟空"));        System.out.println(names);        //删除集合中的A对象,将导致第一个元素被删除        names.remove(new A());        System.out.println(names);        //删除集合中的A对象,再次删除集合中的第一个元素        names.remove(new A());        System.out.println(names);    }}

   与Set只提供了一个iterator()方法不同,List还额外提供了一个listIterator()方法,该方法返回一个ListIterator对象,ListIterator接口继承了Iterator接口,提供了专门操作List的方法:

public class ListIteratorTest {    public static void main(String[] args) {        String[] names = {                "lmx",                "wgl"        };        List nameList = new ArrayList();        for(int i = 0; i < names.length; i++) {            nameList.add(names[i]);        }        ListIterator lit = nameList.listIterator();        while(lit.hasNext()) {            System.out.println(lit.next());            //在指定位置插入一个元素            lit.add("-----分隔符-----");        }        System.out.println("=====下面开始反向迭代=====");        while(lit.hasPrevious()) {
//是否还有上一个元素 System.out.println(lit.previous()); } }}

  从上面程序中可以看出,使用ListIterator迭代List集合时,开始业务要采用正向迭代,即先使用next()方法进行迭代,在迭代过程中可以使用add()方法向上一次迭代元素的后面添加一个新元素。运行上面的程序,看到如下结果:

   下面代码使用LinkedList来实现队列和栈的操作:

public class LinkedListTest {    public static void main(String[] args) {        LinkedList names = new LinkedList();        //将字符串元素加入队列的尾部        names.offer("孙悟空");        //将一个字符串元素加入栈的顶部        names.push("wgl");        //将字符串元素添加到队列的头部(相当于栈的顶部)        names.offerFirst("lmx");        for(int i = 0; i < names.size(); i++) {            System.out.println(names.get(i));        }        //访问但不删除栈顶的元素        System.out.println(names.peekFirst());        //访问但不删除队列的最后一个元素        System.out.println(names.peekLast());        //将栈顶的元素弹出"栈"        System.out.println(names.pop());        //下面输出将看到队列的第一个元素被删除        System.out.println(names);        //访问并删除队列的最后一个元素        System.out.println(names.pollLast());        //下面输出将看到队列中只剩下中间一个元素        System.out.println(names);    }}

 

转载于:https://www.cnblogs.com/wgl1995/p/9405728.html

你可能感兴趣的文章
chrome修改UserAgent,调试
查看>>
Source Insight4.0 试用。。试用。。试用。。
查看>>
python循环for,range,xrange;while
查看>>
hadoop的节点间的通信
查看>>
HashMap
查看>>
mysql 主从 重新同步
查看>>
论如何制做一个工程APP的测试内容
查看>>
如何通过Java启动linux脚本
查看>>
linux系统调用之网络管理2
查看>>
三种样式表插入方法
查看>>
hdu 2139 Calculate the formula (递推)
查看>>
mac, ios 模拟器
查看>>
双向宽度优先搜索
查看>>
常见的异常处理
查看>>
Linux基本命令参数
查看>>
Django系列(一)
查看>>
【ASP.NET Web API教程】2.3.3 创建Admin控制器
查看>>
第二类斯特林数
查看>>
Mysql
查看>>
JQuery中简约的进度条插件推荐
查看>>