Java中的ArrayList.

时间:2020-02-23 14:36:08  来源:igfitidea点击:

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

为什么选择arraylist ,和数组比较:

  • 数组是固定的长度数据结构如果阵列已满,则无法向其添加元素,随着Java中的ArrayList可以根据我们的需求动态增长和缩小。
  • 我们可以使用ArrayList使用泛型,但不是数组
  • ArrayList具有可用于执行操作的预定义方法。

关于Java中的ArrayList的一些重要点是:

  • ArrayList是列表接口的实现。
  • ArrayList不同步(所以没有线程安全)
  • ArrayList使用数组作为内部数据结构实现。可以动态调整大小。
  • ArrayList在其尺寸增加时增加其大小的一半。

Java中的ArrayList示例

package org.arpit.theitroad;
 
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循环在上面的示例中迭代列表:在列表中有很多方法可以迭代。
他们之中有一些是:

  • 使用循环
  • 使用迭代器

迭代器示例:

package org.arpit.theitroad;
 
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方法

我在字符串列表的上下文中解释了以下方法,但我们可以将任何对象放在列表中。

添加(对象O):此方法将Object O添加到ArrayList的末尾。

employeeNameList.add("Amit")

此语句将在上次位置添加ArrayList中的字符串amit。

添加(int index,对象o):这将对象o添加到指定索引中的ArrayList。

employeeNameList.add(5,"Ankit")

它将将字符串ankit添加到第5个索引(随着array list以索引0)的第5个索引(第6个位置)的ArrayList。

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

String str= employeeNameList.get(2);

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

删除(对象O):从ArrayList中删除对象o。

employeeNameList.remove("Arpit");

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

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

employeeNameList.remove(3);

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

SET(INT索引,对象O):它主要用于更新元素。
它替换为对象o在指定索引处存在的元素。

employeeNameList.set(2, "Ankit");

它将用值汤姆替换在索引2(第3元元素中的第3元件)中存在的元素。

int indexof(对象O):它用于查找对象o的索引。

如果对象不存在,则此方法返回-1

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

这将为Employeenamelist中的字符串Ankit的索引(位置)提供。

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

int sizeOfArrayList = employeeNameList.size();

布尔包含(对象O):它检查给定对象O是否存在于ArrayList中。
如果不存在,它会返回false

employeeNameList.contains("Amit");

如果字符串"amit"存在于列表中返回false,则会返回true

清除():

employeeNameList.clear()

它将删除ArrayList的所有对象,因此上面的语句将从EmployEnamelist中删除所有字符串对象

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

例子:

package org.arpit.theitroad;
 
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

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

例子:

package org.arpit.theitroad;
 
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

如果要保留收集中存在的那些元素,则可以使用此方法。

例子:

package org.arpit.theitroad;
 
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