Java——LinkList常用方法

前言

本文只介绍一些常用方法。主要分成八个部分,实现的接口,初始化方法,增加元素,删除元素,修改元素,查找元素,遍历,排序。更多方法见https://www.jiyik.com/w/java/java-linkedlist
LinkedList是一种数据结构,它增删很快,而且我用多少空间,它就开辟出多少空间,LinkedList的底层是用双向链表来实现的

实现的接口

所有已实现的接口:
Serializable, Cloneable, Iterable
Serializable:序列化接口
Cloneable:克隆接口
Iterable:迭代器接口

初始化方法

1、LinkedList() 构造一个空列表。
2、LinkedList(Collection<? extends E> c)构造一个包含指定 collection 中的元素的列表,这些元素按其 collection 的迭代器返回的顺序排列。

增加元素

1、boolean add(E e) 将指定元素添加到此列表的结尾。
2、void add(int index, E element) 在此列表中指定的位置插入指定的元素。
3、 void addFirst(E e)将指定元素插入此列表的开头。
4、void addLast(E e)将指定元素添加到此列表的结尾。
5、boolean addAll(Collection<? extends E> c)添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序。
代码示例:

	public static void main(String[] args) {
		LinkedList<String> list=new LinkedList<String>();
		list.add("111");
		list.add("222");
		list.add(0,"333");
		list.addFirst("000");
		list.addLast("444");
		LinkedList<String> list2=new LinkedList<String>(list);
		LinkedList<String> list3=new LinkedList<String>();
		list3.addAll(list2);
		System.out.println(list);
		System.out.println(list2);
		System.out.println(list3);
	}

再来看一下输出结果:

[000, 333, 111, 222, 444]
[000, 333, 111, 222, 444]
[000, 333, 111, 222, 444]

删除元素

1、 E remove() 获取并移除此列表的头(第一个元素)。
2、 boolean remove(Object o) 从此列表中移除首次出现的指定元素(如果存在)。
3、 E removeFirst()移除并返回此列表的第一个元素。
4、 boolean removeFirstOccurrence(Object o)从此列表中移除第一次出现的指定元素(从头部到尾部遍历列表时)。
5、 E removeLast()移除并返回此列表的最后一个元素
6、boolean removeLastOccurrence(Object o)从此列表中移除最后一次出现的指定元素(从头部到尾部遍历列表时)。
7、 void clear()
代码示例:

	public static void main(String[] args) {
		LinkedList<String> list=new LinkedList<String>();
		list.add("111");
		list.add("222");
		list.add("333");
		list.add("444");
		list.add("555");
		list.add("666");
		list.add("777");
		list.add("888");
		System.out.println(list);
		list.remove();
		System.out.println(list);
		list.remove(0);
		System.out.println(list);
		list.remove("333");
		System.out.println(list);
		list.removeFirst();
		System.out.println(list);
		list.removeLast();
		System.out.println(list);
		list.clear();
		System.out.println(list);		
	}

再来看一下输出结果:

[111, 222, 333, 444, 555, 666, 777, 888]
[222, 333, 444, 555, 666, 777, 888]
[333, 444, 555, 666, 777, 888]
[444, 555, 666, 777, 888]
[555, 666, 777, 888]
[555, 666, 777]
[]

修改元素

E set(int index, E element) 将此列表中指定位置的元素替换为指定的元素。

获取元素

1、E get(int index) 返回此列表中指定位置处的元素。
2、E getFirst()返回此列表的第一个元素。
3、E getLast()返回此列表的最后一个元素。
4、int indexOf(Object o)返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
5、int lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1
6、 int size()返回此列表的元素数。
代码示例:

	public static void main(String[] args) {
		LinkedList<String> list=new LinkedList<String>();
		list.add("111");
		list.add("222");
		list.add("333");
		list.add("444");
		list.add("555");
		list.add("666");
		list.add("777");
		list.add("888");
		System.out.println(list.get(0));
		System.out.println(list.getFirst());
		System.out.println(list.getLast());
		System.out.println(list.indexOf("111"));
		System.out.println(list.size());
	}

再来看一下输出结果:

111
111
888
0
8

遍历

示例代码:

import java.util.LinkedList;
public class Test {
    public static void main(String[] args) {
        LinkedList<String> list=new LinkedList<String>();
        list.add("111");
        list.add("222");
        list.add("333");
        list.add("444");
        list.add("555");
        list.add("666");
        list.add("777");
        list.add("888");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }
        // 111 222 333 444 555 666 777 888 
    }
}

排序

代码示例:

import java.util.Collections;  // 引入 Collections 类
import java.util.LinkedList;

public class Test {
    public static void main(String[] args) {
        LinkedList<Integer> myNumbers = new LinkedList<Integer>();
        myNumbers.add(33);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(34);
        myNumbers.add(8);
        myNumbers.add(12);
        Collections.sort(myNumbers);  // 数字排序
        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

输出结果:

8
12
15
20
33
34
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值