(1)集合框架概述
Java集合大致分为List、Set、Map和Queue Collection是一个顶级接口,其子接口有,List、Set、Queue List:有序(存放和取出顺序是一致的)、有索引、可重复 Set:无序、无索引、不可重复
(2)ArrayList
ArrayList初始化长度为10,扩容为原来的1.5倍 构造方法: public ArrayList(int initialCapacity) :创建给定容量的ArrayList,initialCapacity的值不能小于0,不能大于Integer能表示的最大值 public ArrayList():创建ArrayList对象,默认创建一个空数组。 public ArrayList(Collection<? extends E> c):传入一个集合,以集合中元素为初始元素创建对象 常用方法 add(Object o) 添加数据 add(int index,Object o) 在制定索引处添加元素 size() 获取元素个数 get(int index) 获取索引处的元素 isEmpty() 判断集合是否为空 indexOf(Object o) 判断某个元素第一次出现的位置 E remove(int index) 移除索引处元素,并返回该元素 boolean remove(Object o) 移除元素 clear() 清空元素 set(int index ,E e) 修改索引处的元素 iterator() 获取迭代器 trimToSize() 减少容量至当前元素个数 contains(Object o) 判断是否包含某个元素 lastIndexOf(Object o) 判断某个元素最后一次出现的位置 toArray() 将集合转换为数组 addAll(Collection<? extends E> c) 集合中添加集合 addAll(int index, Collection<? extends E> c) 索引处添加集合 retainAll(Collection c) 求两个集合的交集 removeAll(Collection<?> c) 移除传入集合内的元素 subList(int fromIndex, int toIndex) 获取子集合
/**
-
ArrayList练习 */ public class ArrayListDemo { public static void main(String[] args){ //初始化list对象 List<String> list = new ArrayList<>(); //添加String对象 list.add("孙少安"); list.add("孙少平"); list.add("田润叶"); list.add("田润生"); list.add("孙少安"); list.add("路遥");
//List的若干遍历方式 System.out.println("----------------------"); //for循环 for(int i = 0;i<list.size();i++){ System.out.println(list.get(i)); } System.out.println("----------------------"); //foreach遍历 for(String s :list){ System.out.println(s); } System.out.println("----------------------"); //迭代器遍历 Iterator<String> iterator = list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } System.out.println("----------------------"); ListIterator<String> listIterator = list.listIterator(); while(listIterator.hasNext()){ //从头到尾遍历 System.out.print(listIterator.nextIndex()); System.out.println((String)listIterator.next()); } System.out.println("----------------------"); while(listIterator.hasPrevious()){ System.out.println(listIterator.nextIndex()); System.out.println((String)listIterator.previous()); } System.out.println("----------------------"); //lambda表达式 list.forEach(s -> System.out.println(s));
// List list = null; // list.size(); 空指针异常
System.out.println("----------------------"); //删除元素 //注意!!!遍历时,集合list的容量会不断改变,会导致元素删除不干净
// for(int i = 0;i<list.size();i++){ // list.remove(i); // } // list.forEach(s -> System.out.println(s));
// for(int i = list.size()-1;i>=0;i--){ // list.remove(i); // } // System.out.println(list.size());//删除成功 // // System.out.println("----------------------");
// Iterator<String> iterator1 = list.iterator(); // while(iterator1.hasNext()){ // iterator1.next(); // iterator1.remove(); // } // for(int i = list.size()-1;i>=0;i--){ // list.remove(i); // } // System.out.println(list.size());//删除成功
//list.clear();//最简单粗暴的方式 //获取 list 对应索引的对象 System.out.println(list.get(2)); //判断集合是否为空 System.out.println(list.isEmpty()); //判断某个元素第一次出现的位置 System.out.println(list.indexOf("孙少安")); }
}