ArrayList和LinkedList常用方法演示与解析

        ArrayList和LinkedList是接口List的实现类,ArrayList是一个顺序表结构,LinkedList是一个链表结构。顺序表最大的特点就是他可以快速的进行数据的随机访问,链表的有点在于他对数据的增删改非常敏捷,处理效率非常高。但是对于访问数据来说,链表需要通过移动指针来访问遍历结点,因此不如顺序表给出索引位置即可访问数据这样快捷。

        我们之前学的数组,数字长度是固定的。如果数组满了,再插入新的元素就插不进去了。数组长度需要我们在一开始就定义好,很不利于今后的使用。但是,ArrayList集合的长度可以随意变化。

 ArrayList的常用方法:

方法名说明

boolean add(Object o)

在列表的末尾顺序添加元素,起始索引位置从0开始

void add(int index,Object o)

在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间

int size()

返回列表中的元素个数

Object get(int index)

返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

boolean contains(Object o)

判断列表中是否存在指定元素

boolean remove(Object o)

从列表中删除元素

Object remove(int index)

从列表中删除指定位置元素,起始索引位置从0开始

Object set(int index,Object o)

指定下标进行修改其中的元素,返回的是修改前的对象

        对于ArrayList集合来说,直接打印对象名得到的不是地址值,而是内容,如果内容为空,打印结果就是[  ]。

        声明方法:ArrayList<E> 集合名 = new ArrayList<>();其中E代表泛型,也就是说集合中的元素的类型应该统一。

        给集合添加元素使用add方法。以下代码ArrayList中常用方法的演示案例,配注释。

ublic class DemoArrayList {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();

        //演示public boolean add() 方法的用法
        //        System.out.println(list.add(2));//添加后返回一个布尔值,TRUE代表插入成功。
        System.out.println(list.add(5));
        System.out.println(list.add(6));
        System.out.println(list.add(9));
        System.out.println(list);

        //演示public E get(int index) 方法的用法
        //System.out.println(list.get(3));//IndexOutOfBoundsException: Index: 3, Size: 3
        System.out.println(list.get(2));

        //演示 public E remove(int index) 和 public int size()
        System.out.println(list.size());//3
        System.out.println(list.remove(2));//9  返回删除对象
        System.out.println(list.size());//2 长度减一

        //演示 boolean remove(Object o)
        //此时我们的集合中元素类型是Integer,不能直接删除
        //因为我们输入数值,编译器会把他当做索引值,使用valueOf()方法
        list.add(7);
        System.out.println(list);//[5,6,7]
        System.out.println(list.remove(Integer.valueOf(7)));
        System.out.println(list);//[5,6]


        //演示void add(int index,Object o)
        list.add(2,10);//此时长度是2,可以在索引为2的位置上添加元素
        System.out.println(list);

        list.add(3,100);//此时长度是3,但是要往索引为4的位置添加元素不可行
                                        //IndexOutOfBoundsException: Index: 4, Size: 3
        System.out.println(list);//[5, 6, 10, 100]

        //演示 boolean contains(Object o) 的使用方法
        //[5, 6, 10, 100]
        System.out.println(list.contains(100));//true
        System.out.println(list.contains("hello"));//false

        //演示Object set(int index,Object o) 修改对应位置的值,返回修改之前的值
        System.out.println(list.set(3,99));//100
        System.out.println(list);//[5, 6, 10, 99]


    }
}

LinkedList的常用方法:

1、LinkedList底层是一个链表结构,查询慢,增删快。

2、LinkedList里包含了大量的操作首尾的方法。(特有的方法,不可使用多态)

方法名说明
void  addFirst(Object o)在列表的首部添加元素
void  addLast(Object o)在列表的末尾添加元素
Object  getFirst()返回列表中的第一个元素
Object  getLast()返回列表中的最后一个元素
Object  removeFirst()删除并返回列表中的第一个元素
Object  removeLast()删除并返回列表中的最后一个元素

常用方法的演示;示例:(寻寻觅觅冷冷清清凄凄惨惨戚戚,乍暖还寒时候,最难将息。三杯两盏淡酒,怎敌他晚来风急。)

public class DemoLinkedList {

    public static void main(String[] args) {

        LinkedList<String> list = new LinkedList<>();
        LinkedList<Integer> list1 = new LinkedList<>();

        //演示 public void addFirst(E e)   1
        //演示 public void addLast(E e)    2
        //演示 public void push(E e)       3
        list.add("\n乍暖还寒时候");
        list.add("最难将息");
        list.add("三杯两盏淡酒");
        list.addFirst("凄凄惨惨戚戚");
        list.push("寻寻觅觅冷冷清清");//与addFirst方法具有相同的效果

        System.out.println(list);//[寻寻觅觅冷冷清清,
                                //凄凄惨惨戚戚, 乍暖还寒时候, 最难将息, 三杯两盏淡酒]

        list.addLast("怎敌他,晚来风急");//尾部插入

        System.out.println(list);//[寻寻觅觅冷冷清清, 凄凄惨惨戚戚,
                                  //乍暖还寒时候, 最难将息, 三杯两盏淡酒, 怎敌他,晚来风急]

        //演示public E getFirst()
        //演示public E getLast()
        System.out.println(list.getFirst());//寻寻觅觅冷冷清清
        System.out.println(list.getLast());//怎敌他,晚来风急

        //演示public E removeFirst()
        //演示public E removeLast()
        //演示public E pop()

        System.out.println(list);

        //删除首句
        System.out.println(list.remove());//与removeFirst等效
        System.out.println(list.removeFirst());
        System.out.println(list.pop());//与上面方法等效,都是删除表头

        //删除尾句
        System.out.println(list.removeLast());

        //删除了两个首句,和两个尾句的集合
        System.out.println(list);//[最难将息, 三杯两盏淡酒]


}

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值