Iterable、Collection、List 的常见方法签名以及含义

简介: Iterable、Collection、List 的常见方法签名以及含义

1、Collection中的常用方法

eaa5deaac67049a1bd222331a8afe620.png

4b6d84d78ea145c992d7c4a6614e7d5a.png


Collection是所有单列集合的根接口,因此在Collection中定义了单列集合(List和Set)的一些通用方法,这些方法可用于操作所有的单列集合。

下面我们先用ArrayList集合来一一列举:

import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
        //创建Arraylist集合
        ArrayList list=new ArrayList();
        //add向集合中添加元素
        list.add("first");
        list.add("second");
        list.add("third");
        //size() 查看元素个数
        System.out.println(list.size());            //3
        //isEmpty() 判断集合是否为空
        System.out.println(list.isEmpty());         //false
        //contains(object c)  判断该集合是否包含指定集合c中的所以元素
        String A="list";
        String B="first";
        System.out.println(list.contains(A));       //false
        System.out.println(list.contains(B));       //true
        //equal(object o) 判断与指点的对象是否相等
        System.out.println(list.equals("first"));   //false
        ArrayList list1=new ArrayList();
        list1.add("first");
        list1.add("second");
        list1.add("third");
        System.out.println(list.equals(list1));     //true
        //clear() 清除该集合中是所以元素
        System.out.println(list);                   //[first, second, third]
        list.clear();
        System.out.println(list);                   //[]
    }
}

等下再单独说iterator

2、list中的常用方法

List 接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引(类似于数组中的元素角标)来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

List作为Collection集合的子接口,不但继承了Collection 接口中的全部方法,而且还增加了一些操作集合的特有方法。如下:


a3e265a046cc4c06a608293a2e92e3fb.png

list接口中有Arraylist集合和LinkedList集合,我们一起来了解一下这两个集合。

(1)ArrayList

ArrayList是 List 接口的一个实现类,,它是程序中最常见的一种集合。在 ArrayList内都封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组正是由于ArrayList内部的数据存储结构是数组形式,在增加或删除指定位置的元素时,会创建新的数组,效率比较低,因此不适合做大量的增删操作。但是,这种数组结构允许程序通过索引的方式来访问元素,因此使用ArrayList集合在遍历和查找元素时显得非常高效

import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        //add向集合中添加元素
        list.add("first");
        list.add("second");
        list.add("third");
        //Object get(int x) 得到列表中指点位置的元素
        System.out.println(list.get(1));        //second
        //Object set(int x,Object element) 将索引x处的元素换成element元素,并返还替换后的元素
        list.set(1,"SECOND");
        System.out.println(list);               //[first, SECOND, third]
        //lastIndexOf(Object c) 返回c最后一次出现的索引,如果集合不包含c,则返回-1
        System.out.println(list.lastIndexOf("first"));      //0
        System.out.println(list.lastIndexOf("FIRST"));      //-1
    }
}

(2)LinkedList

ArrayList集合在查询元素时速度很快,但在增删元素时效率较低,为了克服这种局限性,可以使用List接口的另一个实现类LinkedList。该集合内部包含有两个 Node类型的first和 last属性维护一个双向循环链表,链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。当插入一个新元素时,只需要修改元素之间的这种引用关系即可,删除一个节点也是如此。正因为这样的存储结构,所以 LinkedList集合对于元素的增删操作表现出很高的效率。

LinkedList方法:


53a55051a4744f69ab50f646cf1a4356.png

3、lterator遍历集合

lterator接口是Java集合框架中的一员,但它与Collection ,Map接口有所不同,Collection接口与Map接口主要用于存储元素,而 Iterator主要用于迭代访问(即遍历)olleoxion中的元素,因此Iterator对象也被称为迭代器。

import java.util.ArrayList;
import java.util.Iterator;
public class Main {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        list.add("first");
        list.add("second");
        list.add("third");
        list.add("four");
        list.add("five");
        //获取Iterator对象
        Iterator iterator=list.iterator();
        //判断集合中是否存在下一个元素
        while (iterator.hasNext())
        {
            Object ob=iterator.next();
            System.out.println(ob);
        }
    }
}

打印结果:

first

second

third

four

five


目录
相关文章
|
1月前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
73 18
你对Collection中Set、List、Map理解?
|
1月前
|
Java 机器人 程序员
从入门到精通:五种 List 遍历方法对比与实战指南
小米是一位热爱分享技术的程序员,本文详细介绍了 Java 中遍历 List 的五种方式:经典 for 循环、增强 for 循环、Iterator 和 ListIterator、Stream API 以及 forEach 方法。每种方式都有其适用场景和优缺点,例如 for 循环适合频繁访问索引,增强 for 循环和 forEach 方法代码简洁,Stream API 适合大数据量操作,ListIterator 支持双向遍历。文章通过生动的小故事和代码示例,帮助读者更好地理解和选择合适的遍历方式。
65 2
|
4月前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
48 5
|
5月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
199 1
List与String相互转化方法汇总
|
5月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
54 5
|
6月前
|
前端开发 Java 项目管理
List.of 问题之使用List.of方法为什么会引发前端解析失败的问题,如何解决
List.of 问题之使用List.of方法为什么会引发前端解析失败的问题,如何解决
|
6月前
|
XML Java API
List与String相互转化的方法有哪些
摘要:本文概述了Java中List转换为String及反之的多种策略。使用`String.join()`可简洁地连接List元素;`StringBuilder`提供灵活控制;Java 8 Stream API收集器简化操作;Apache Commons Lang3的`StringUtils.join()`和Guava的`Joiner.on()`支持外部库的高效转换。
119 2
|
6月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
6月前
|
存储 缓存 安全
Java List操作详解及常用方法
Java List操作详解及常用方法
|
7月前
|
Java
JAVA构建List集合为树形结构的方法和代码
JAVA构建List集合为树形结构的方法和代码
35 0