0
点赞
收藏
分享

微信扫一扫

LinkedList常用方法

女侠展昭 2022-04-20 阅读 83
java

一、介绍

链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。链表可分为单向链表和双向链表。

LinkedList和ArrayList的区别

Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。

与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

二、添加元素

方法:add()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    System.out.println(list);
}

运行结果:

[1, 2, 3]

三、获取元素

方法:get()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    String s1 = list.get(0);
    String s2 = list.get(1);
    String s3 = list.get(2);
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s3);
}

运行结果:

1
2
3

四、迭代元素

方法:for  foreach()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    for (int i = 0 ;i<list.size();i++){
        System.out.println("普通for循环-----"+list.get(i));
    }
    for (String s : list) {
        System.out.println("for循环-----"+s);
    }
    list.forEach(r->{
        System.out.println("forEach-----"+r);
    });
}

运行结果:

普通for循环-----1
普通for循环-----2
普通for循环-----3
for循环-----1
for循环-----2
for循环-----3
forEach-----1
forEach-----2
forEach-----3

五、元素添加到头部

方法:addFirst(E e)

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    System.out.println("添加前---"+list);
    list.addFirst("4");
    System.out.println("添加后---"+list);

}
 

运行结果:

添加前---[1, 2, 3]
添加后---[4, 1, 2, 3]

六、元素添加到尾部

方法:addLast(E e)

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    System.out.println("添加前---"+list);
    list.addLast("4");
    System.out.println("添加后---"+list);

}
 

运行结果:

添加前---[1, 2, 3]
添加后---[1, 2, 3, 4]

七、清空链表

方法: clear()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    list.clear();
   System.out.println(list);
}
 

运行结果:

[ ]

八、删除指定位置的元素

方法:  remove(int index)

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    System.out.println("删除前---"+list);
    list.remove(0);
    System.out.println("删除后---"+list);
}
 

运行结果:

删除前---[1, 2, 3]
删除后---[2, 3]

九、查找指定元素从前往后第一次出现的索引

方法:indexOf()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("1");
    list.add("2");
    list.add("2");
    list.add("3");
    list.add("3");
    list.add("3");
    int i = list.indexOf("1");
    System.out.println(i);
}

运行结果:

0

十、克隆列表

方法:clone()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    System.out.println("创建的list-----"+list);
    Object clone = list.clone();
    System.out.println("复制的list-----"+clone);
}

运行结果:

创建的list-----[1, 2, 3]
复制的list-----[1, 2, 3]

十一、返回链表元素个数

方法:size()

代码:

public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("1");
    list.add("2");
    list.add("3");
    int size = list.size();
    System.out.println(size);
}

运行结果:

3

举报

相关推荐

0 条评论