Java中的ArrayList 重要方法补充
Posted 康小庄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的ArrayList 重要方法补充相关的知识,希望对你有一定的参考价值。
Java 中的 ArrayList 重要方法补充
文章目录
Java 中的 ArrayList retainAll()方法
数组列表 的**retainall()**方法用于移除指定集合中未包含的所有数组列表元素,或者保留当前数组列表实例中所有匹配元素,这些元素匹配作为参数传递给该方法的集合列表中的所有元素。 语法:
public boolean retainAll(Collection C)
**参数:**C是包含要保留在列表中的元素的集合。 **返回值:**如果调用 else 导致列表发生变化,则该方法返回布尔值 true,否则返回 false。 例外:
- ClassCastException:如果此数组列表元素的类与传递的集合不兼容。这是可选的。
- 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 重要方法补充的主要内容,如果未能解决你的问题,请参考以下文章