Java基础之List集合

举报
袁袁袁袁满 发表于 2022/04/22 20:52:00 2022/04/22
【摘要】 1.0 List集合分类List系列集合:添加的元素是有序,元素按进入先后有序保存,可重复,有索引ArrayList: 添加的元素是有序,可重复,有索引;接口实现类, 数组, 随机访问, 没有同步, 线程不安全LinkedList: 添加的元素是有序,可重复,有索引;接口实现类, 链表, 插入删除, 没有同步, 线程不安全Vector :是线程安全的,速度慢,开发中很少使用;接口实现类 数...

1.0 List集合分类

  • List系列集合:添加的元素是有序,元素按进入先后有序保存,可重复,有索引
    • ArrayList: 添加的元素是有序,可重复,有索引;接口实现类, 数组, 随机访问, 没有同步, 线程不安全
    • LinkedList: 添加的元素是有序,可重复,有索引;接口实现类, 链表, 插入删除, 没有同步, 线程不安全
    • Vector :是线程安全的,速度慢,开发中很少使用;接口实现类 数组, 同步, 线程安全

1.1 List集合概述和特点

List集合概述
1、有序集合(也称为序列),用户可以精确控制列表中每个元索的插入位置。用户可以通过整数索引访问元素,并获取列表中的元素
2、与Set集合不同,List集合允许重复的元素

List集合特点
1、有序: 存储和取出的元素顺序一致
2、可重复: 存储的元素可以重复

1.2 List集合的特有方法

方法名 说明
public void add(int index,E element) 该集合中的指定位置上插入元素
public E remove(int index) 删除列表中指定位置的元素,返回被删除的元素
public E set(int index,E element) 修改指定索引的元素,返回被修改的元素
public E get(int index) 返回集合中指定位置的元素
package ceshi;

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

public class ListDemo {
    public static void main(String[] args) {
        //创建集合对象
        List<String> list = new ArrayList<>();

        //添加元素
        list.add("java");
        list.add("天下");
        list.add("无敌");
        list.add("java");
        System.out.println(list); //[java, 天下, 无敌, java]

        //1、public void add(int index,E element) 	该集合中的指定位置上插入元素
        list.add(1,"javase");
        System.out.println(list); //[java, javase, 天下, 无敌, java]

        //2、public E remove(int index) 	删除列表中指定位置的元素,返回被删除的元素
        System.out.println(list.remove(1)); //javase
        System.out.println(list); //[java, 天下, 无敌, java]

        //3、public E set(int index,E element) 	修改指定索引的元素,返回被修改的元素
        System.out.println(list.set(0,"java1")); //java
        System.out.println(list); //[java1, 天下, 无敌, java]

        //4、public E get(int index) 	返回集合中指定位置的元素
        System.out.println(list.get(2)); //无敌

        //for循环遍历
        for(int i=0;i< list.size();i++) {
        	//5,public E get(int index)	返回集合中指定位置的元素
            String s = list.get(i);
            System.out.println(s);
            /*java1
            天下
            无敌
            java*/
        }
    }
}

1.3 ListIterator迭代器

  • Lstlterator:列表迭代器
    • 通过List集合的listterator()方法得到,所以说它是List集合特有的迭代器
    • 用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置
  • 常用方法
方法名 说明
list.listIterator() 得到 listIterator 迭代器
E next() 返回迭代中的下一个元素
boolean hasNext() 如果迭代具有更多元素,则返回true
E previous() [ˈpriːviəs] 返回列表中的上一个元素
boolean hasPrevious() 如果此列表迭代器在相反方向遍历列表时具有更多元索,则返回true
void add(E e) 将指定的元索插入列表

1.4 foreach(增强for循环)

增强for:简化数组和Collection集合的遍历

  • 实现Iterable接口的类允许其对象成为增强型 for语句的目标
  • 它是JDK5之后出现的,其内部原理是一个Iterator迭代器
  • 格式
for(元素类型  变量名: 数组名或collection集合){ 
    
}
//范例
int[] arr = {1,2,3,4,5};
for(int i : arr) {
	System.out.println(i);
}

1.5 List集合子类特点

  • ArrayList:底层数据结构数组实现,查询快增删慢
  • LinkedList:底层数据结构链表实现,查询慢增删快

1.6 LinkedList集合特有方法

方法名 说明
public void addFirst(E,e) 在该列表开头插入指定的元素
public void addLast(E,e) 将指定的元索追加到此列表的末尾
public E getFirst() 返回此列表中的第一个元索
public E getLast() 返回此列表中的最后一个元素
public E removeFirst 从此列表中删除并返回第一个元素
public E removeLast 从此列表中删除并返回最后一个元素
package ceshi;

import java.util.LinkedList;

public class LinkedListDemo {
    public static void main(String[] args) {
        //创建集合对象
        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("java");
        linkedList.add("python");
        linkedList.add("scala");
        System.out.println(linkedList); //[java, python, scala]

        //1、public void addFirst(E,e) 	在该列表开头插入指定的元素
        linkedList.addFirst("1");
        System.out.println(linkedList); //[1, java, python, scala]

        //2、public void addLast(E,e) 	将指定的元索追加到此列表的末尾
        linkedList.addLast("5");
        System.out.println(linkedList); //[1, java, python, scala, 5]

        //3、public E getFirst() 	返回此列表中的第一个元索
        System.out.println(linkedList.getFirst()); //1

        //4、public E getLast() 	返回此列表中的最后一个元素
        System.out.println(linkedList.getLast()); //5

        //5、public E removeFirst 	从此列表中删除并返回第一个元素
        System.out.println(linkedList.removeFirst()); //1
        System.out.println(linkedList);//[java, python, scala, 5]

        //6、public E removeLast 	从此列表中删除并返回最后一个元素
        System.out.println(linkedList.removeLast()); //5
        System.out.println(linkedList); //[java, python, scala]
    }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。