第四章java中的数组列表


Java中的ArrayList是最常见的Collections数据结构以及我们经常使用的HashMap 。

为什么选择 ArrayList 与 Array:

  1. 数组是定长的数据结构如果数组是满的,你不能往里面添加元素,而java中的ArrayList可以根据我们的需要动态增长和收缩。
  2. 您可以将泛型与 ArrayList 一起使用,但不能与 Array 一起使用
  3. ArrayList 具有可用于执行操作的预定义方法。

java中关于ArrayList的一些要点

  1. ArrayList 是列表接口的实现。
  2. ArrayList 未同步(因此不是线程安全的)
  3. ArrayList 是使用数组作为内部数据结构实现的,可以动态调整大小。
  4. 当 ArrayList 的大小增加时,它的大小会增加一半。

数组列表

java中的ArrayList示例

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.*;

public class JavaArrayListExampleMain {
 /*
  * @author : Arpit Mandliya
  */
 public static void main(String[] args) {
  ArrayList employeeNameList = new ArrayList();
  employeeNameList.add("John");
  employeeNameList.add("Ankit");
  employeeNameList.add("Rohan");
  employeeNameList.add("Amit");

  System.out.println("Employee list:");

  for (String empName : employeeNameList) {

   System.out.println(empName);

  }

 }
}

当你运行上面的程序时,你会得到下面的输出:

Employee list:
John
Ankit
Rohan
Amit

遍历列表

在上面的例子中,我们使用了 foreach 循环来迭代列表: 有很多方法可以迭代列表。他们之中有一些是:

  1. 使用 for 循环
  2. 使用迭代器

迭代器示例:

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.*;

public class JavaArrayListExampleMain {
 /*
  * @author : Arpit Mandliya
  */
 public static void main(String[] args) {
  ArrayList employeeNameList = new ArrayList();
  employeeNameList.add("John");
  employeeNameList.add("Ankit");
  employeeNameList.add("Rohan");
  employeeNameList.add("Amit");

  System.out.println("Employee list:");

  Iterator iter = employeeNameList.iterator();
  while (iter.hasNext()) {
   System.out.println(iter.next());
  }

 }
}

当你运行上面的程序时,你会得到下面的输出:

Employee list:
John
Ankit
Rohan
Amit

java中ArrayList的方法

我在 String list的上下文中解释以下方法,但您可以将任何对象放入列表中。

add(Object o):此方法将对象 o 添加到数组列表的末尾。

employeeNameList.add("Amit")

该语句将在 ArrayList 的最后一个位置添加一个字符串 Amit。

add(int index, Object o):这会将对象 o 添加到指定索引处的数组列表中。

employeeNameList.add(5,"Ankit")

它将字符串 Ankit 添加到 ArrayList 的第 5 个索引(数组列表从索引 0 开始的第 6 个位置)。

Object get(int index):它返回存在于指定索引处的列表对象。

String str= employeeNameList.get(2);

它用于从 ArrayList 中获取元素,这是最常用的方法。在这里,我们从 ArrayList 获取元素并将其分配给 String 对象

remove(Object o):从 ArrayList 中移除对象 o。

employeeNameList.remove("Arpit");

此代码将从 ArrayList 中删除字符串“Arpit”。

remove(int index):删除指定索引处的元素

employeeNameList.remove(3);

它将删除索引为 3 的元素(列表的第 4 个元素,因为列表始终以 0 开头)。

set(int index, Object o):主要用于更新元素。它用对象 o 替换指定索引处的元素。

employeeNameList.set(2, "Ankit");

它将用值 Tom 替换索引 2(arrayList 中的第 3 个元素)处的元素。

int indexOf(Object o): 用于查找对象o的索引。如果对象不存在,则此方法返回 -1

int index = employeeNameList.indexOf("Ankit");

这将给出字符串 Ankit 在employeeNameList 中的索引(位置)。

int size():它给出了ArrayList的大小

int sizeOfArrayList = employeeNameList.size();

boolean contains(Object o): 它检查给定的对象 o 是否存在于 ArrayList 中。如果不存在,则返回 false

employeeNameList.contains("Amit");

如果列表中存在字符串“Amit”,则返回 true,否则返回 false

清除():

employeeNameList.clear()

addAll(集合 c)

如果要合并两个ArrayList,可以使用这个方法。

例子:

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.*;

public class JavaArrayListExampleMain {
 /*
  * @author : Arpit Mandliya
  */
 public static void main(String[] args) {
  ArrayList employeeNameList = new ArrayList();
  employeeNameList.add("John");
  employeeNameList.add("Ankit");
  employeeNameList.add("Rohan");
  employeeNameList.add("Amit");

  ArrayList otherList = new ArrayList();

  otherList.add("abc");
  otherList.add("xyz");

  // Adding otherList to employeeList
  employeeNameList.addAll(otherList);

  System.out.println("Employee list:");

  for (String empName : employeeNameList) {

   System.out.println(empName);

  }

 }
}

当你运行上面的程序时,你会得到下面的输出:

Employee list:
John
Ankit
Rohan
Amit
abc
xyz

全部删除(集合 c)

如果要删除其他列表中存在的元素列表,可以使用此方法。

例子:

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.*;

public class JavaArrayListExampleMain {
 /*
  * @author : Arpit Mandliya
  */
 public static void main(String[] args) {
  ArrayList employeeNameList = new ArrayList();
  employeeNameList.add("John");
  employeeNameList.add("Ankit");
  employeeNameList.add("Rohan");
  employeeNameList.add("Amit");

  ArrayList otherList = new ArrayList();

  otherList.add("John");
  otherList.add("Rohan");

  // removing otherList's element from ArrayList
  employeeNameList.removeAll(otherList);

  System.out.println("Employee list:");

  for (String empName : employeeNameList) {

   System.out.println(empName);

  }

 }
}

当你运行上面的程序时,你会得到下面的输出:

Employee list:
Ankit
Amit

保留所有(集合)

如果您只想保留 Collection 中存在的那些元素,则可以使用此方法。

例子:

package org.arpit.java2blog;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.*;

public class JavaArrayListExampleMain {
 /*
  * @author : Arpit Mandliya
  */
 public static void main(String[] args) {
  ArrayList employeeNameList = new ArrayList();
  employeeNameList.add("John");
  employeeNameList.add("Ankit");
  employeeNameList.add("Rohan");
  employeeNameList.add("Amit");

  ArrayList otherList = new ArrayList();

  otherList.add("John");
  otherList.add("Rohan");

  // removing otherList's element from ArrayList
  employeeNameList.retainAll(otherList);

  System.out.println("Employee list:");

  for (String empName : employeeNameList) {

   System.out.println(empName);

  }

 }
}

当你运行上面的程序时,你会得到下面的输出:

Employee list:
John
Rohan

这就是java中的ArrayList。


原文链接:https://codingdict.com/