Java中的ArrayList 重要方法补充

Posted 康小庄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的ArrayList 重要方法补充相关的知识,希望对你有一定的参考价值。

Java 中的 ArrayList 重要方法补充

文章目录

Java 中的 ArrayList retainAll()方法

数组列表 的**retainall()**方法用于移除指定集合中未包含的所有数组列表元素,或者保留当前数组列表实例中所有匹配元素,这些元素匹配作为参数传递给该方法的集合列表中的所有元素。 语法:

public boolean retainAll(Collection C)

**参数:**C是包含要保留在列表中的元素的集合。 **返回值:**如果调用 else 导致列表发生变化,则该方法返回布尔值 true,否则返回 false。 例外:

  1. ClassCastException:如果此数组列表元素的类与传递的集合不兼容。这是可选的。
  2. NullPointerException:如果列表包含空元素,并且传递的集合不允许空元素,或者如果指定的集合为空。这也是可选的。
public static void testRetainAll() 
		ArrayList<String> list1 = new ArrayList<String>();
		list1.add("pen");
		list1.add("pencil");
		list1.add("paper");
		ArrayList<String> list2 = new ArrayList<String>();
		list2.add("pen");
		list2.add("paper");
		list2.add("books");
		list2.add("rubber");
		System.out.println("list1 Contains :" + list1);
		System.out.println("list2 Contains :" + list2);

		list2.retainAll(list1);
		System.out.println("\\nAfter Applying list2.retainAll(list1) \\n");

		System.out.println("list1 Contains :" + list1);
		System.out.println("list2 Contains :" + list2);
	

Output

list1 Contains :[pen, pencil, paper]
list2 Contains :[pen, paper, books, rubber]

After Applying list2.retainAll(list1) 

list1 Contains :[pen, pencil, paper]
list2 Contains :[pen, paper]

Java 中的 ArrayList forEach()方法

数组列表forEach() 方法用于对数组列表中的每个元素执行一定的操作。此方法遍历数组列表的 Iterable 的每个元素,直到该方法处理完所有元素或引发异常。如果方法指定了迭代顺序,则按照迭代顺序执行操作。操作引发的异常被传递给调用方。

语法

public void forEach(Consumer<? super E> action)

**参数:**该方法取一个参数动作,代表每个元素要执行的动作。

**返回:**这个方法不返回任何东西。

**异常:**如果指定的操作为空,此方法将引发 NullPointerException

public static void testForEach() 
		ArrayList<String> students = new ArrayList<String>();

		students.add("Ram");
		students.add("Mohan");
		students.add("Sohan");
		students.add("Rabi");

		students.forEach((n) -> print(n));
		students.forEach((n) -> System.out.println(n));
		students.forEach(System.out::println);
	

	public static void print(String n) 
		System.out.println(n);
	

Output

Ram
Mohan
Sohan
Rabi
Ram
Mohan
Sohan
Rabi
Ram
Mohan
Sohan
Rabi

Java 中的 Arrays.binarySearch()

Arrays.binarySearch() 方法使用二分搜索法算法在给定数据类型的指定数组中搜索指定值。在进行此调用之前,必须按照 Arrays.sort() 方法对数组进行排序。如果没有排序,结果是未定义的。如果数组包含多个具有指定值的元素,则不能保证找到哪一个

语法

public static int binarySearch(data_type arr, data_type key)

**记住:**这里的数据类型可以是任何原始数据类型,例如字节、字符、双精度、int、float、short、long,甚至 object。

参数:

  • Array to be searched
  • Value to be searched

**返回类型:**搜索关键字的索引,如果包含在数组中;否则,(-(插入点)–1)。插入点定义为将键插入数组的点:大于键的第一个元素的索引,如果数组中的所有元素都小于指定的键,则为. length。请注意,这保证了当且仅当找到密钥时,返回值将为> = 0。

public static void testBinarySearch() 
		// 数组初始化
		byte byteArr[] =  10, 20, 15, 22, 35 ;
		char charArr[] =  'g', 'p', 'q', 'c', 'i' ;
		int intArr[] =  10, 20, 15, 22, 35 ;
		double doubleArr[] =  10.2, 15.1, 2.2, 3.5 ;
		float floatArr[] =  10.2f, 15.1f, 2.2f, 3.5f ;
		short shortArr[] =  10, 20, 15, 22, 35 ;

		// 先进行排序
		Arrays.sort(byteArr);
		Arrays.sort(charArr);
		Arrays.sort(intArr);
		Arrays.sort(doubleArr);
		Arrays.sort(floatArr);
		Arrays.sort(shortArr);

		// 目标值
		byte byteKey = 35;
		char charKey = 'g';
		int intKey = 22;
		double doubleKey = 1.5;
		float floatKey = 35;
		short shortKey = 5;

		System.out.println(byteKey + " found at index = " + Arrays.binarySearch(byteArr, byteKey));
		System.out.println(charKey + " found at index = " + Arrays.binarySearch(charArr, charKey));
		System.out.println(intKey + " found at index = " + Arrays.binarySearch(intArr, intKey));
		System.out.println(doubleKey + " found at index = " + Arrays.binarySearch(doubleArr, doubleKey));
		System.out.println(floatKey + " found at index = " + Arrays.binarySearch(floatArr, floatKey));
		System.out.println(shortKey + " found at index = " + Arrays.binarySearch(shortArr, shortKey));
	

Output

35 found at index = 4
g found at index = 1
22 found at index = 3
1.5 found at index = -1
35.0 found at index = -5
5 found at index = -1

以上是关于Java中的ArrayList 重要方法补充的主要内容,如果未能解决你的问题,请参考以下文章

ML_6机器学习重要概念补充

ArrayList源码分析之add 方法

Java知识补充

java集合中的ArrayList源码分析

Excel JAVA 读取代码POI Excel Reader 修改补充

Java重要类之LinkedList