Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

8.2. List

		
package cn.netkiller.example;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.TreeSet;

public class Test {

	public Test() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// A A B E F G C D
		String[] array = { "A", "A", "B", "E", "F", "G", "C", "D" };
		Collection<String> list = new ArrayList<String>(Arrays.asList(array));
		for (String str : list) {
			System.out.print(str + " ");
		}
		System.out.println();

		// A A B E F G C D
		Collection<String> linkedList = new LinkedList<String>(Arrays.asList(array));
		for (String str : linkedList) {
			System.out.print(str + " ");
		}
		System.out.println();

		// 无重复,无序 D E F G A B C
		Collection<String> hashSet = new HashSet<String>(Arrays.asList(array));
		for (String str : hashSet) {
			System.out.print(str + " ");
		}
		System.out.println();

		// 无重复 A B C D E F G
		Collection<String> treeSet = new TreeSet<String>(Arrays.asList(array));
		for (String str : treeSet) {
			System.out.print(str + " ");
		}
		System.out.println();

		// 无重复 A B E F G C D
		Collection<String> linkedHashSet = new LinkedHashSet<String>(Arrays.asList(array));
		for (String str : linkedHashSet) {
			System.out.print(str + " ");

		}

	}

}
		
		

输出结果

			A A B E F G C D
			A A B E F G C D
			A B C D E F G
			A B C D E F G
			A B E
			F G C D
		

8.2.1. 静态 List

			
	public static List<String> list = new ArrayList<String>();
	static {
		list.add("录入");
		list.add("变更");
		list.add("收藏");
		list.add("在售");
		list.add("展出");
	}			
				
			
			

8.2.2. List.of()

		
List<String> strings = List.of("first", "second");		
		
			

8.2.3. List.copyOf()

			
var list = List.of("Java", "Python", "C");
var copy = List.copyOf(list);
System.out.println(list == copy); // true
			
			
		
var list = new ArrayList<String>();
var copy = List.copyOf(list);
System.out.println(list == copy); // false
		
			

8.2.4. String[] to List

		
String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);		
		
			

8.2.5. Stream.toList() 方法

数组转List

			
String[] arrays = {"tom", "jack", "kate"};
List<String> stringList= Stream.of(arrays).collect(Collectors.toList());			
			
			
			
package cn.netkiller.demo;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class TestList {

	public TestList() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {

		List<String> list = Arrays.asList("1", "2", "3");
		// jdk11 之前这样写
		List<Integer> list1 = list.stream().map(Integer::parseInt).collect(Collectors.toList());
		System.out.println(list1);
		// jdk16 现在可以这样写
		List<Integer> list2 = list.stream().map(Integer::parseInt).toList();
		System.out.println(list2);

	}
}			
			
			

8.2.6. containsAll

			
        List<String> inputStringList = Arrays.asList("Neo|Netkiller|Tom|Jerry".split("|"));
        List<String> wordsList = Arrays.asList("Neo|Tom".split("|"));
        System.out.println(inputStringList.containsAll(wordsList));			
			
			

8.2.7. stream().allMatch()

			
        List<String> inputStringList = Arrays.asList("Neo|Netkiller|Tom|Jerry".split("|"));
        List<String> wordsList = Arrays.asList("Neo","Tom");
        System.out.println(wordsList.stream().allMatch(inputStringList::contains));			
			
			

8.2.8. 随机 List

			
List<String> list = Arrays.asList("a","b","c");
int index = (int) (Math.random()* list.size());
System.out.println(list.get(index));			
			
			

8.2.9. getFirst() / getLast()

使用 idea 写代码,list 变量可以看到 getFirst() / getLast() 但实际上 list 并没有两个方法,这时 idea 模版造成的。

			
java: 找不到符号
  符号:   方法 getFirst()
  位置: 类型为java.util.ArrayList<java.lang.String>的变量 list			
			
			
			
        // 创建一个ArrayList对象
        ArrayList<String> list = new ArrayList<>();

        // 添加元素到列表中
        list.add("apple");
        list.add("banana");
        list.add("orange");

        // 获取最后一个元素
//        String firstElement = list.getFirst();
//        String lastElement = list.getLast();
        String lastElement = list.get(list.size() - 1);
        System.out.println("最后一个元素是:" + lastElement);			
			
			

8.2.10. List 转 Array

			
        List<CompletableFuture<String>> completableFutures = Stream.of(future1, future2, future3).toList();
        CompletableFuture[] completableFutureArray = completableFutures.toArray(CompletableFuture[]::new);			
			
		List<CompletableFuture<String>> completableFutures = Stream.of(future1, future2, future3).toList();
        var completableFutureArray = completableFutures.toArray(CompletableFuture[]::new);