数据结构--List的介绍

发布于:2024-10-08 ⋅ 阅读:(19) ⋅ 点赞:(0)

目录

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与顺序表