欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 数据结构--List的介绍

数据结构--List的介绍

2025/12/15 21:03:38 来源:https://blog.csdn.net/2301_80176093/article/details/142730670  浏览:    关键词:数据结构--List的介绍

目录

1. 什么是List

Collection中有那些方法?

add(E e)方法

addAll(Collection c)方法

clear()方法

contains(Object o)方法

containsAll(Collection c)方法

equals(Object o)方法

hashCode()方法

isEmpty()方法

iterator()方法

remove(Object o)方法

removeAll(Collection c)方法

retainAll(Collection c)方法

size()方法

toArray()方法

toArray(T[] a)方法


1. 什么是List

在集合框架中, List 是一个接口,继承自 Collection
Collection 也是一个接口 ,该接口中规范了后序容器中常用的一些方法,具体如下所示:
站在数据结构的角度来看, List 就是一个线性表,即 n 个具有相同类型元素的有限序列,在该序列上可以执行增删
改查以及变量等操作

Collection中有那些方法?

  1. add(E e)方法

  2. (在Set等集合中)

    • 用于向集合中添加单个元素。如果是Set集合,会保证元素的唯一性,例如:
   import java.util.HashSet;import java.util.Set;public class Main {public static void main(String[] args) {Set<String> set = new HashSet<>();set.add("apple");set.add("banana");System.out.println(set);}}

  1. addAll(Collection<? extends E> c)方法

  2. (在Collection接口相关实现类中,如ListSet等)

    • 用于将一个集合中的所有元素添加到当前集合中。例如:
   import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));list1.addAll(list2);System.out.println(list1);}}

  1. clear()方法

  2. (在Collection接口相关实现类中)
    • 用于清空集合中的所有元素,例如:
   import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("a");list.add("b");list.clear();System.out.println(list);}}

  1. contains(Object o)方法

  2. (在Collection接口相关实现类中)
    • 用于判断集合中是否包含指定的元素,例如:
   import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");boolean contains = list.contains("apple");System.out.println(contains);}}

  1. containsAll(Collection<?> c)方法

  2. (在Collection接口相关实现类中)
    • 用于判断当前集合是否包含另一个集合中的所有元素,例如:
   import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));List<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2));boolean containsAll = list1.containsAll(list2);System.out.println(containsAll);}}

  1. equals(Object o)方法

  2. (在Collection接口相关实现类中)
    • 用于比较两个集合是否相等,这里的相等是指元素内容相等(对于Set还要求元素顺序无关)。例如:
   import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));List<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3));boolean equals = list1.equals(list2);System.out.println(equals);}}

  1. hashCode()方法

  2. (在Collection接口相关实现类中)
    • 返回集合的哈希码值,哈希码值的计算与集合中的元素相关,不同的集合实现可能有不同的计算方式。
    •    import java.util.ArrayList;import java.util.List;public class ListHashCodeExample {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);int hashCode = list.hashCode();System.out.println("List的哈希码值: " + hashCode);}}

  3. isEmpty()方法

  4. (在Collection接口相关实现类中)
    • 用于判断集合是否为空,例如:
   import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();boolean isEmpty = list.isEmpty();System.out.println(isEmpty);}}

  1. iterator()方法

  2. (在Collection接口相关实现类中)
    • 返回一个Iterator对象,用于遍历集合中的元素,例如:
   import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("a");list.add("b");Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);}}}

  1. remove(Object o)方法

  2. (在Collection接口相关实现类中)
    • 用于从集合中移除指定的元素,例如:
    import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.remove("apple");System.out.println(list);}}

  1. removeAll(Collection<?> c)方法

  2. (在Collection接口相关实现类中)
    • 用于从当前集合中移除另一个集合中的所有元素,例如:
    import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4));list1.removeAll(list2);System.out.println(list1);}}

  1. retainAll(Collection<?> c)方法

  2. (在Collection接口相关实现类中)
    • 用于保留当前集合中与另一个集合的交集部分的元素,例如:
    import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 6));list1.retainAll(list2);System.out.println(list1);}}

  1. size()方法

  2. (在Collection接口相关实现类中)
    • 用于返回集合中元素的个数,例如:
    import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("a");list.add("b");int size = list.size();System.out.println(size);}}

  1. toArray()方法

  2. (在Collection接口相关实现类中)
    • 用于将集合转换为数组,例如:
    import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("a");list.add("b");Object[] array = list.toArray();for (Object element : array) {System.out.println(element);}}}

  1. toArray(T[] a)方法

  2. (在Collection接口相关实现类中)
    • toArray()类似,但可以指定数组的类型,这样可以避免不必要的类型转换。例如:
    import java.util.ArrayList;import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("a");list.add("b");String[] array = list.toArray(new String[0]);for (String element : array) {System.out.println(element);}}}

此片为简单的介绍List,具体使用方法请看下篇ArrayList与顺序表

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词