• Tags
  •         
  • www.breakyizhan.com
  •    

    Java.util.List是Collection的子接口。它是一个有序的对象集合,可以存储重复的值。由于List保留了插入顺序,因此它允许位置访问和插入元素。List接口由ArrayListLinkedList,Vector和Stack类实现。

    Java中的接口Java.util.List

    创建Java列表List对象:

    列表是一个接口,可以通过以下方式创建List的实例:

    List a = new ArrayList();
    List b = new LinkedList();
    List c = new Vector(); 
    List d = new Stack();

    通用列表对象:
    在Java 1.5中引入泛型后,可以限制可以存储在List中的对象类型。可以通过以下方式定义类型安全列表:

    // Obj是要存储在List中的对象类型。
    List <Obj> list = new List <Obj>();

    Java中的List上的操作

    List Interface extends Collection,因此它支持Collection Interface的所有操作,以及以下附加操作:

    1. 位置访问:
      列表允许根据List中元素的数字位置添加,删除,获取和设置操作。List为这些操作提供了以下方法:

      • void add(int index,Object O):此方法在指定的索引处添加给定元素。
      • boolean addAll(int index,Collection c):此方法将指定集合中的所有元素添加到列表中。第一个元素在给定索引处插入。如果该位置已经存在元素,则该元素和其他后续元素(如果有)通过增加其索引向右移动。
      • Object remove(int index):此方法从指定的索引中删除元素。它将后续元素(如果有)向左移动并将其索引减少1。
      • Object get(int index):此方法返回指定索引处的元素。
      • Object set(int index,Object new):此方法用新元素替换给定索引处的元素。此函数返回刚刚被新元素替换的元素。
      // Java program to demonstrate positional access
      // operations on List interface
      import java.util.*;
      
      public class ListDemo
      {
          public static void main (String[] args)
          {
              // Creating a list
              List<Integer> l1 = new ArrayList<Integer>();
              l1.add(0, 1);  // adds 1 at 0 index
              l1.add(1, 2);  // adds 2 at 1 index
              System.out.println(l1);  // [1, 2]
      
              // Creating another list
              List<Integer> l2 = new ArrayList<Integer>();
              l2.add(1);
              l2.add(2);
              l2.add(3);
      
              // Will add list l2 from 1 index
              l1.addAll(1, l2);
              System.out.println(l1);
      
              // Removes element from index 1
              l1.remove(1);    
              System.out.println(l1); // [1, 2, 3, 2]
      
              // Prints element at index 3
              System.out.println(l1.get(3));
      
              // Replace 0th element with 5
              l1.set(0, 5);  
              System.out.println(l1);
          }
      }
      

      输出:

      [1,2] 
      [1,1,2,3,2] 
      [1,2,3,2] 
      2 
      [5,2,3,2]
      
    2. Search:
      List提供搜索元素的方法并返回其数字位置。此操作的List支持以下两种方法:

      • int indexOf(Object o):此方法返回给定元素的第一个匹配项,如果列表中不存在元素,则返回-1。
      • int lastIndexOf(Object o):此方法返回给定元素的最后一个匹配项,如果列表中不存在元素,则返回-1。
      // Java program to demonstrate search
      // operations on List interface
      import java.util.*;
      
      public class ListDemo
      {
          public static void main(String[] args)
          {
              // Type safe array list, stores only string
              List<String> l = new ArrayList<String>(5);
              l.add("Geeks");
              l.add("for");
              l.add("Geeks");
      
              // Using indexOf() and lastIndexOf()
              System.out.println("first index of Geeks:" +
                                      l.indexOf("Geeks"));
              System.out.println("last index of Geeks:" +
                                  l.lastIndexOf("Geeks"));
              System.out.println("Index of element"+
                  " not present : " + l.indexOf("Hello"));
          }
      }
      

      输出:

      first index of Geeks:0
      last index of Geeks:2
      Index of element not present : -1
    3. 迭代:
      ListIterator(extends Iterator)用于迭代List元素。List迭代器是双向迭代器。有关ListIterator的更多详细信息,请参阅Java中的Iterators
    4. Range-view:
      List Interface提供了一种方法,用于获取两个索引之间给定List部分的List视图。以下是List支持的范围视图操作方法。

      • List subList(int fromIndex,int toIndex):此方法返回fromIndex(包括)和toIndex(不包括)之间指定List的List视图。
      // Java program to demonstrate subList operation
      // on List interface.
      import java.util.*;
      public class ListDemo
      {
          public static void main (String[] args)
          {
              // Type safe array list, stores only string
              List<String> l = new ArrayList<String>(5);
      
              l.add("GeeksforGeeks");
              l.add("Practice");
              l.add("GeeksQuiz");
              l.add("IDE");
              l.add("Courses");
      
              List<String> range = new ArrayList<String>();
      
              // Return List between 2nd(including)
              // and 4th element(excluding)
              range = l.subList(2, 4);
      
              System.out.println(range);
          }
      }
      

      输出:

      [GeeksQuiz,IDE]

     
    转载请保留页面地址:https://www.breakyizhan.com/java/5286.html