List集合常用操作方法

List集合


ArrayList集合

ArrayList集合底层是一个数组,元素查询快,增删慢。
java.util.List接口 extends Collection接口
List接口的特点:
	1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出1232.有索引,包含了一些带索引的方法
	3.允许存储重复的元素

List接口中带索引的方法(特有)
	- public void add(int index, E element):将指定的元素,添加到该集合的指定位置上。
	- public E get(int index):返回集合中指定位置的元素。
	- public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
	- public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
	注意:
		操作索引的时候,一定要防止索引越界异常
		IndexOutOfBoundsException:索引越界异常,集合会报
		ArrayIndexOutOfBoundsException:数组索引越界异常
		StringIndexOutOfBoundsException:字符串索引越界异常

实列演示

package cn.itcast.demo01;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Demo01Method {
    public static void main(String[] args) {
        // 创建一个List集合对象,多态
        List<String> list = new ArrayList<>();
        // 使用add方法往集合中添加元素
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("a");
        // 打印集合
        System.out.println(list); // [a, b, c, d, a] 不是地址,重写了toString方法

        // public void add(int index, E element):将指定的元素,添加到该集合中的指定位置上。
        // 在c和d之间添加一个itheima
        list.add(3, "itheima"); // [a, b, c, itheima, d, a]
        System.out.println(list);

        // public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
        // 移除元素
        String removeE = list.remove(2);
        System.out.println("被移除的元素:" + removeE);
        System.out.println(list);

        // public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值是更新前的元素
        // 把最后一个a,替换为A
        String setE = list.set(4, "A");
        System.out.println("被替换的元素:" + setE);
        System.out.println(list); // [a, b, itheima, d, A]

        // list集合遍历有3种方式
        // 使用普通的for循环
        for (int i = 0; i < list.size(); i++) {
            // public E get(int index):返回集合中指定位置的元素。
            String s = list.get(i);
            System.out.println(s);
        }
        System.out.println("--------------------");
        // 使用迭代器
        Iterator<String> it = list.iterator();
        while(it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
        System.out.println("----------------");
        // 使用增强for
        for (String s : list) {
            System.out.println(s);
        }

        String r = list.get(5);
        System.out.println(r); // IndexOutOfBoundsException: Index 5 out-of-bounds for length 5
    }
}

LinkedList集合

java.util.LinkedList集合 implements List接口
LinkedList集合的特点:
	1.底层是一个链表结构:查询慢,增删快
	2.里边包含了大量操作首尾元素的方法
	注意:使用LinkedList集合特有的方法,不能使用多态
	- public void addFirst(E e):将指定元素插入此列表的开头
	- public void addList(E e):将指定元素添加到此列表的结尾
	- public void push(E e):将元素推入此列表所表示的堆栈 此方法等效于addFirst()

	- public E getFirst():返回此列表的第一个元素
	- public E getLast():返回此列表的最后一个元素

	- public E removeFirst():移除并返回此列表的第一个元素
	- public E removeLast():移除并返回此列表的最后一个元素
	- public E pop():从此列表所表示的堆栈处弹出一个元素
	
	- public boolean isEmpty():如果列表不包含元素,则返回true

实列演示

package cn.itcast.demo01;

import java.util.LinkedList;

public class Demo01Method {
    public static void main(String[] args) {
        // 创建LinkedList集合对象
        LinkedList<String> linked = new LinkedList<>();

        /*
            public void addFirst(E e):将指定元素插入此列表的开头
            public void addLast(E e):将指定元素添加到此列表的结尾
            public void push(E e):将元素推入此列表所表示的堆栈
         */

        // 使用add方法往集合中添加元素
        linked.add("a");
        linked.add("b");
        linked.add("c");
        System.out.println(linked); // [a, b, c]

        // public void addFirst(E e):将指定元素插入此列表的开头
//        linked.addFirst("www");
//        System.out.println(linked); // [www, a, b, c]

        linked.push("www");
        System.out.println(linked); // [www, a, b, c]

        // public void addLast(E e):将指定元素添加到此列表的结尾。此方法等效于add()
        linked.addLast("com");
        System.out.println(linked); // [www, a, b, c, com]

        
    }
}
package cn.itcast.demo01;

import java.util.LinkedList;

public class Demo01Method {
   public static void main(String[] args) {
       // 创建LinkedList集合对象
       LinkedList<String> linked = new LinkedList<>();
       // 使用add方法往集合中添加元素
       linked.add("a");
       linked.add("b");
       linked.add("c");

//        linked.clear(); // 清空集合中的元素 再获取集合中的元素会抛出NoSuchElementException

       // public boolean isEmpty():如果列表不包含元素,则返回true
       if(!linked.isEmpty()){
           String first = linked.getFirst();
           System.out.println(first); // a
           String last = linked.getLast();
           System.out.println(last); // c
       }
   }
}
package cn.itcast.demo01;

import java.util.LinkedList;

public class Demo01Method {
   public static void main(String[] args) {
       // 创建LinkedList集合对象
       LinkedList<String> linked = new LinkedList<>();
       // 使用add方法往集合中添加元素
       linked.add("a");
       linked.add("b");
       linked.add("c");
       System.out.println(linked);

//        String first = linked.removeFirst();
//        System.out.println("被移除的第一个元素:" + first);
       String pop = linked.pop();
       System.out.println("被移除的第一个元素:" + pop);
       String last = linked.removeLast();
       System.out.println("被移除的最后一个元素:" + last);
       System.out.println(linked); // [b]
   }
}

转载自 https://blog.csdn.net/weixin_43873349/article/details/90257284

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值