Java ArrayList



  • Java ArrayList

    ArrayList 类是可调整大小的阵列,其可以在java.util包中找到。内置数组与ArrayListJava数组之间的区别在于,数组的大小无法修改(如果要向数组中添加元素或从数组中删除元素,则必须创建一个新数组)。ArrayListJava可以随时添加和删除元素。语法也略有不同:
    创建一个名为cars的ArrayList对象,该对象将存储字符串:
    import java.util.ArrayList; // import the ArrayList class
    
    ArrayList<String> cars = new ArrayList<String>(); // Create an ArrayList object
    
    如果您不知道什么是软件包,请阅读我们的Java软件包教程
  • 新增元素

    ArrayList类有许多有用的方法。例如,要将元素添加到中ArrayList,请使用add()方法:
    import java.util.ArrayList;
    
    public class MyClass {
      public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        System.out.println(cars);
      }
    }
    
  • 获取元素

    要访问ArrayList中的元素,请使用get()方法并引用索引号:
    cars.get(0);
    
    切记:数组索引以0开头:[0]是第一个元素。[1]是第二个元素,依此类推。
  • 更新元素

    要修改元素,请使用set()方法并引用索引号:
    cars.set(0, "Opel");
    
  • 删除元素

    要删除元素,请使用remove()方法并引用索引号:
    cars.remove(0);
    
    要删除ArrayList中的所有元素,请使用clear()方法:
    cars.clear();
    
  • ArrayList大小

    要找出ArrayList有多少个元素,请使用以下size方法:
    cars.size();
    
  • 遍历ArrayList

    遍历的ArrayList元素与for循环,并使用size()方法来指定循环应该多少次运行:
    public class MyClass {
      public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        for (int i = 0; i < cars.size(); i++) {
          System.out.println(cars.get(i));
        }
      }
    }
    
    您也可以使用for-each循环遍历ArrayList:
    public class MyClass {
      public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        for (String i : cars) {
          System.out.println(i);
        }
      }
    }
    
  • 其他数据类型的ArrayList

    ArrayList中的元素实际上是对象。在上面的示例中,我们创建了“字符串”类型的元素(对象)。请记住,Java中的String是一个对象(不是原始类型)。要使用其他类型,例如int,必须指定等效的包装器类:Integer。对于其他原始类型,请使用:Boolean布尔值,Character字符,Double双精度型,等等:
    创建一个ArrayList存储数字(添加类型的元素Integer):
    import java.util.ArrayList;
    
    public class MyClass {
      public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(10);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(25);
        for (int i : myNumbers) {
          System.out.println(i);
        }
      }
    }
    
  • 排序ArrayList

    java.util包中另一个有用的类是Collections类,该类包括sort()用于按字母或数字对列表进行排序的方法:
    对字符串的ArrayList进行排序:
    import java.util.ArrayList;
    import java.util.Collections;  // Import the Collections class
    
    public class MyClass {
      public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        Collections.sort(cars);  // Sort cars
        for (String i : cars) {
          System.out.println(i);
        }
      }
    }
    
    对整数的ArrayList进行排序:
    import java.util.ArrayList;
    import java.util.Collections;  // Import the Collections class
    
    public class MyClass {
      public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(33);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(34);
        myNumbers.add(8);
        myNumbers.add(12);
    
        Collections.sort(myNumbers);  // Sort myNumbers
    
        for (int i : myNumbers) {
          System.out.println(i);
        }
      }
    }