Java系列-链表--非自定义

package com.company;

import java.util.Iterator;
import java.util.LinkedList;

public class TestLinkedList {
    public static void main(String[] args) {
        //新建链表,装的内容可以是任何包装类
        LinkedList<Integer> list = new LinkedList<>();
        //给链表赋值
        list.add(5);//只能顺序插入
        list.add(4);
        list.add(3);
        list.add(2);
        list.addLast(1);//尾部值
        list.addFirst(6);//头部值

        //有了头尾后再插入值,新加的值就在尾部,前面尾部的值还是存在
        list.add(7);

        //打印链表
        System.out.println("list内容如下:" + list);

        //计算链表长度
        int length = list.size();
        System.out.println("list链表长度:" + length);

        //判断链表中是否包含某个值
        boolean isExist = list.contains(1);
        System.out.println("链表中是否包含1 " + isExist);

        //按索引取值,取第二个值
        Integer value = list.get(1);
        System.out.println("链表中的第二个值为:" + value);

        //取特殊值,取头部值
        Integer head = list.getFirst();
        System.out.println("list的头部值为:" + head);

        //取特殊值,取尾部值
        Integer last = list.getLast();
        System.out.println("list的尾部值为:" + last);

        //不知道索引,也不知道值在头部和尾部,如何取值?


        //删除:按索引删除
        list.remove(0);//删除第一个值
        System.out.println("删除第一个元素后。list内容为" + list);


        //删除:按值删除-方法1
        list.add(7);
        list.add(7);
        System.out.println("list的值为" + list);

        //删除:按值删除-方法2
        list.remove((Object) 7);//有多个重复值时,只能删除一个,没法把所有相同的值都删除
        System.out.println("删除7后。list内容为" + list);

        //删除:按值删除-方法3
        while (list.contains(7)) {
            list.remove((Object) 7);//循环删除相同的元素
        }
        System.out.println("删除所有的7后。list内容为" + list);

        //删除:按值删除-方法4--更安全
        list.add(7);
        list.addFirst(7);
        System.out.println("list的值为" + list);


        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
            if (iterator.next() == 7) {
                iterator.remove();
            }
        }
        System.out.println("删除所有的7后。list内容为" + list);
    }
}

-----------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值