List集合使用与常见API


import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

public class ListTest {

	public static void main(String[] args) {
		
		List<Integer> list = new ArrayList<>();
		
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		//基础for循环
		System.out.println("------------------------------------基础for循环------------------------------------");
		for(int i = 0;i<list.size();i++) {
			System.out.println(list.get(i));
		}
		
		//增强for循环
		System.out.println("------------------------------------增强for循环------------------------------------");
		for(Integer i:list) {
			System.out.println(i);
		}
		
		//迭代器循环
		System.out.println("------------------------------------迭代器循环------------------------------------");
		Iterator<Integer> iterator = list.iterator();
		while(iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		
		//ListIterator循环
		System.out.println("------------------------------------ListIterator循环------------------------------------");
		ListIterator<Integer> listIterator = list.listIterator();
		
		while(listIterator.hasNext()) {
			System.out.println(listIterator.next());
			//listIterator.remove();
			//listIterator.set(1);
		}
		System.out.println(list);
		
		while(listIterator.hasPrevious()) {
			System.out.println(listIterator.previous());
		}
		
		System.out.println("-----------------------------------LinkedList特有迭代器-----------------------------------");
		LinkedList<Integer> list1 = new LinkedList<>();
		list1.addAll(list);
		//降序迭代,一开始的指针在最后一个元素
		Iterator<Integer> descendingIterator = list1.descendingIterator();
		while(descendingIterator.hasNext()) {
			System.out.println(descendingIterator.next());
		}
		
		System.out.println("--------------------------------------List集合API---------------------------------------");
		List<Integer> list2 = new ArrayList<>();//创建对象
		
		list2.add(1);
		list2.add(2);		//添加元素
		list2.add(3);
		list2.add(4);
		
		List<Integer> list3 = new ArrayList<>(list2);//创建对象第二种方式
		
		list3.addAll(list2);//添加另一个集合中所有的元素
		System.out.println(list3);
		
		//list3.clear()清除一个集合中所有元素
		
		boolean res = list3.contains(4);//检查一个集合中是否含有指定元素
		System.out.println(res);
		
		list3.forEach(a->{	//foreach简化版本
			System.out.println(a);
			
		});
		list3.forEach(System.out::println);//lambda表达式印射到相同返回值和相同参数的方法中
		
		int index = list3.indexOf(3);
		System.out.println("3的位置"+index);//查询一个元素在list中的第一次出现的位置,返回下标,没找到返回-1
		
		int lastIndex = list3.lastIndexOf(3);
		System.out.println("最后一个3的位置"+lastIndex);//查询一个元素在list中的最后一次出现的位置,返回下标,没找到返回-1
		
		System.out.println(list3.isEmpty());//判断list是否为空
		
		boolean remove = list3.remove(new Integer(1));//删除指定元素,若出现形同元素只删除第一次出现的
		System.out.println(list3);
		
		Integer remove2 = list3.remove(1);//按照指定下标删除元素
		System.out.println(list3);
		
		list3.removeAll(list);//删除一个集合中所有元素,不管有没有重复
		System.out.println(list3);
		list3.addAll(list2);
		list3.addAll(list2);
		//按照要求删除
		list3.removeIf(a->{
			return a ==2;
		});
		System.out.println(list3);
		//按照指定规则替换元素
		list3.replaceAll(i->{
			return i==1?0:1;
		});
		System.out.println(list3);
		
		//保留指定集合中的元素,删除剩余的
		list3.addAll(list2);
		list3.retainAll(list2);
		System.out.println(list3);
		
		//修改集合中指定下标元素的值
		list3.set(3, 7);
		System.out.println(list3);
		//截取集合,截取出来的不是ArrayList集合,是一个内部类,所以无法使用ArrayList的API进行操作
		List<Integer> subList = list3.subList(0, 4);
		System.out.println(subList);
		
		//list转换为数组
		Object[] array = list3.toArray();
		System.out.println(array);
		System.out.println("----------------------------------LinkedList使用--------------------------------");
		LinkedList<Integer> list4 = new LinkedList<>();
		list4.addAll(list3);
		
		//在第一个位置添加元素
		list4.addFirst(9);
		System.out.println(list4);
		
		//在最后一个位置添加元素
		list4.addLast(19);
		System.out.println(list4);
		
		//获取集合中第一个元素
		Integer element = list4.element();
		System.out.println("集合中第一个元素"+element);
		
		Integer last = list4.getLast();//获取最后一个元素
		System.out.println("集合中最后一个元素"+last);
		
		System.out.println("集合中的下标为5的元素"+list4.get(5));
		
		//向集合中第一个位置添加元素
		list4.addFirst(100);
		
		//向集合中末尾添加元素
		list4.addLast(99);
		
		System.out.println(list4);
		
		Integer removeFirst = list4.removeFirst();//获取并删除第一个元素,还有一个方法 list4.remove()
		System.out.println("删除的元素"+removeFirst);
		System.out.println(list4);
		
		Integer removeLast = list4.removeLast();//获取并删除最后一个一个元素
		System.out.println("删除的元素"+removeLast);
		System.out.println(list4);
		
		boolean removeFirstOccurrence = list4.removeFirstOccurrence(6);//删除第一次出现的指定元素,没有找到则返回false
		boolean removeLastOccurrence = list4.removeLastOccurrence(9);//删除最后一次出现的指定元素,没有找到则返回false
		System.out.println(list4);
		
	}
}

你可能感兴趣的:(List集合使用与常见API)