IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java_List(集合)_常见方法操作(实例) -> 正文阅读

[Java知识库]java_List(集合)_常见方法操作(实例)

目录

一、List_所有已知实现类

二、定义

三、方法

1、list中添加,获取,删除元素;(add(index,e),get(index),remove(index))

2、list中是否包含某个元素;(并不是equals)(是List中另外一个方法contains,用法与equals大差不离)

3、list中根据索引将元素数值改变(替换);(list.set(index,e))

4、list中查看(判断)元素的索引;(indexOf(Object o))

5、根据元素索引位置进行的判断;

?6、利用list中索引位置重新生成一个新的list(截取集合);(list.subList(fromindex,toindex))

7、判断list是否为空;(List.isEmpty())

8、返回Iterator集合对象;(使用Iterator迭代器方式需要创建对象,且这种迭代器方式多用于遍历)

9、将集合转换为字符串;List.toString();

四、ending!


一、List_所有已知实现类

?我们需要重点掌握:ArrayList? 与? LinkedList.

二、定义

List是一种有序集合(也称为序列 )。 该界面的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。

与集合不同,列表通常允许重复的元素。 更正式地,列表通常允许成对的元素e1e2 ,使得e1.equals(e2) ,并且如果它们允许空元素,它们通常允许多个空元素。 有人可能希望实现一个禁止重复的列表,当用户尝试插入时会抛出运行时异常,但是我们预计这种使用是罕见的。

List接口放置额外的约定,超过指定Collection界面上的合同iteratoraddremoveequals ,并hashCode方法。 其他继承方法的声明也包括在这里以方便。

List接口提供四种位置(索引)访问列表元素的方法。 列表(如Java数组)为零。 请注意,这些操作可能与某些实现的索引值(例如LinkedList类)成时执行。 因此,如果调用者不知道实现,则通过迭代列表中的元素通常优先于索引。

List接口提供了一个特殊的迭代器,称为ListIterator ,允许元素插入和替换,以及双向访问以及Iterator接口提供的常规操作。 提供了一种方法来获取从列表中的指定位置开始的列表迭代器。

List接口提供了两种搜索指定对象的方法。 从性能角度来说,谨慎使用这些方法。 在许多实现中,它们将执行昂贵的线性搜索。

List接口提供了两种方法来有效地插入和删除列表中任意一点上的多个元素。

注意:虽然列表允许将其自身作为元素,但建议您非常小心: equalshashCode方法在这样的列表中不再被很好的定义。

某些列表实现对它们可能包含的元素有限制。 例如,一些实现禁止空元素,有些实现对元素的类型有限制。 尝试添加不合格元素会引发未经检查的异常,通常为NullPointerExceptionClassCastException 。 尝试查询不合格元素的存在可能会引发异常,或者可能只是返回false; 一些实现将展现出前者的行为,一些实现将展现出后者。 更一般来说,对于不完成不会导致将不合格元素插入到列表中的不合格元素的操作,可能会在执行选项时抛出异常或成功。 此异常在此接口的规范中标记为“可选”。

三、方法

    • voidadd?(int?index, E?element)

      将指定的元素插入此列表中的指定位置(可选操作)。

      booleanadd?(E?e)

      将指定的元素追加到此列表的末尾(可选操作)。

      booleanaddAll?(int?index, Collection<? extends E>?c)

      将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。

      booleanaddAll?(Collection<? extends E>?c)

      按指定集合的迭代器(可选操作)返回的顺序将指定集合中的所有元素附加到此列表的末尾。

      voidclear?()

      从此列表中删除所有元素(可选操作)。

      booleancontains?(Object?o)

      如果此列表包含指定的元素,则返回 true

      booleancontainsAll?(Collection<?>?c)

      如果此列表包含指定集合的所有元素,则返回 true

      booleanequals?(Object?o)

      将指定的对象与此列表进行比较以获得相等性。

      Eget?(int?index)

      返回此列表中指定位置的元素。

      inthashCode?()

      返回此列表的哈希码值。

      intindexOf?(Object?o)

      返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。

      booleanisEmpty?()

      如果此列表不包含元素,则返回 true

      Iterator<E>iterator?()

      以正确的顺序返回该列表中的元素的迭代器。

      intlastIndexOf?(Object?o)

      返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。

      ListIterator<E>listIterator?()

      返回列表中的列表迭代器(按适当的顺序)。

      ListIterator<E>listIterator?(int?index)

      从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。

    • Eremove?(int?index)

      删除该列表中指定位置的元素(可选操作)。

      booleanremove?(Object?o)

      从列表中删除指定元素的第一个出现(如果存在)(可选操作)。

      booleanremoveAll?(Collection<?>?c)

      从此列表中删除包含在指定集合中的所有元素(可选操作)。

      default voidreplaceAll?(UnaryOperator<E>?operator)

      将该列表的每个元素替换为将该运算符应用于该元素的结果。

      booleanretainAll?(Collection<?>?c)

      仅保留此列表中包含在指定集合中的元素(可选操作)。

      Eset?(int?index, E?element)

      用指定的元素(可选操作)替换此列表中指定位置的元素。

      intsize?()

      返回此列表中的元素数。

      default voidsort?(Comparator<? super E>?c)

      根据指定的Comparator引发的顺序排列此列表。

      default Spliterator<E>spliterator?()

      在此列表中的元素上创建一个Spliterator

      List<E>subList?(int?fromIndex, int?toIndex)

      返回指定的 fromIndex (含)和 toIndex之间的列表部分的视图。

      Object[]toArray?()

      以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。

?其中有一些方法不常用我就不举例了。

接下来我们一个一个方法编译执行看一下:

1、list中添加,获取,删除元素;(add(index,e),get(index),remove(index))

package ListDemo;

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

public class Demo {
    public static void main(String[] args) {

        List<String> list=new ArrayList<String>();

        //add(E e)添加指定元素到末尾
        list.add("hello");
        list.add("world");
        list.add("java");

        System.out.println(list);
        System.out.println("--------------------");

        //add(int index,E e)添加元素到指定索引处
        list.add(1,"ying");

        //remove(int index)删除指定索引位置的元素
        list.remove(2);

        //get(index)获取指定索引位置的元素
        list.get(2);

        //增强for循环
        for (String s:list){
            System.out.println(s);
        }
        System.out.println("--------------------");

        System.out.println(list);
        System.out.println("--------------------");

    }
}


//运行结果:
E:\develop\JDK\bin\java.exe "-javaagent:E:\IDEA\IntelliJ IDEA Community Edition 
[hello, world, java]
--------------------
hello
ying
java
--------------------
[hello, ying, java]
--------------------

Process finished with exit code 0


2、list中是否包含某个元素;(并不是equals)(是List中另外一个方法contains,用法与equals大差不离)

package ListDemo;

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

public class Demo {
    public static void main(String[] args) {

        List<String> list=new ArrayList<String>();

        //add(E e)添加指定元素到末尾
        list.add("hello");
        list.add("world");
        list.add("java");

        System.out.println(list);
        System.out.println("--------------------");

        //add(int index,E e)添加元素到指定索引处
        list.add(1,"ying");

        //判断是否存在相同元素,有则返回true
        String name="ying";
        if (list.contains(name)){
            System.out.println("ying in list");
        }else {
            System.out.println("ying no in list");
        }

    }
}


3、list中根据索引将元素数值改变(替换);(list.set(index,e))

package ListDemo;

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

public class Demo {
    public static void main(String[] args) {

        List<String> list=new ArrayList<String>();

        //add(E e)添加指定元素到末尾
        list.add("hello");
        list.add("world");
        list.add("java");

        System.out.println(list);
        System.out.println("--------------------");

        //add(int index,E e)添加元素到指定索引处
        list.add(1,"ying");

        //根据list索引,修改索引对应的集合内相应位置的元素(list.set(int index,e"修改值"))
        list.set(0,"small");

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}


4、list中查看(判断)元素的索引;(indexOf(Object o))

//根据元素值查看索引值indexOf。
        List<Integer> number = new ArrayList<Integer>();

        number.add(1);
        number.add(2);
        number.add(3);
        number.add(2);

        //返回元素值等于2的索引.
        System.out.println(number.indexOf(2));
        //返回元素值等于2的最后的索引.
        System.out.println(number.lastIndexOf(2));
    }

//输出结果
1
3

Process finished with exit code 0

从结果我们可以看出,根据集合中int类型的值2,我们得到的索引1,刚好为我们添加的顺序。


5、根据元素索引位置进行的判断;

        List<Integer> number = new ArrayList<Integer>();

        number.add(1);
        number.add(2);
        number.add(3);
        number.add(2);

        //返回元素值等于2的索引.
        System.out.println(number.indexOf(2));
        //返回元素值等于2的最后的索引.
        System.out.println(number.lastIndexOf(2));

        //根据元素索引位置进行的判断
        if (number.indexOf(3) == 2) {
            System.out.println("元素3在索引2这个位置.");
        }
        if (number.lastIndexOf(2) == 3) {
            System.out.println("最后的元素2在索引3这个位置.");
        }
1
3
元素3在索引2这个位置.
最后的元素2在索引3这个位置.

Process finished with exit code 0

?
6、利用list中索引位置重新生成一个新的list(截取集合);(list.subList(fromindex,toindex))

public class Demo {
    public static void main(String[] args) {

        List<String> list=new ArrayList<String>();

        //add(E e)添加指定元素到末尾
        list.add("hello");
        list.add("world");
        list.add("java");

        System.out.println(list);
        System.out.println("--------------------");

        //add(int index,E e)添加元素到指定索引处
        list.add(1,"ying");

        //利用subList()截取, 然后给list,末尾指针一般会减一取值。
        list=list.subList(0,2);
        for (String s:list){
            System.out.println(s);
        }


7、判断list是否为空;(List.isEmpty())

package ListDemo;

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

public class Demo {
    public static void main(String[] args) {

        List<String> list=new ArrayList<String>();

        //add(E e)添加指定元素到末尾
        list.add("hello");
        list.add("world");
        list.add("java");

        System.out.println(list);
        System.out.println("--------------------");

        if (list.isEmpty()){
            System.out.println("list集合为空!");
        }else {
            System.out.println("list集合中存在元素,不为空!");
        }


8、返回Iterator集合对象;(使用Iterator迭代器方式需要创建对象,且这种迭代器方式多用于遍历)

package ListDemo;

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

public class Demo {
    public static void main(String[] args) {

        List<String> list=new ArrayList<String>();

        //add(E e)添加指定元素到末尾
        list.add("hello");
        list.add("world");
        list.add("java");

        System.out.println(list);
        System.out.println("--------------------");

        //迭代器Iterator
        Iterator it = list.iterator();
        while(it.hasNext()) {
            Object o = it.next();
            System.out.println(o);
        }


9、将集合转换为字符串;List.toString();

List<Integer> number = new ArrayList<Integer>();

        number.add(1);
        number.add(2);
        number.add(3);
        number.add(2);

        String str = "";
        str = number.toString();
        System.out.println(str);


//输出结果
[1, 2, 3, 2]

Process finished with exit code 0

四、ending!

今天的分享就到这里了,谢谢!


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:30:54  更:2021-10-16 19:31:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:20:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码