一、常用方法

  1. List常用方法
A:添加功能
boolean add(E e):向集合中添加一个元素
void add(int index, E element):在指定位置添加元素
boolean addAll(Collection<? extends E> c):向集合中添加一个集合的元素。

B:删除功能
void clear():删除集合中的所有元素
E remove(int index):根据指定索引删除元素,并把删除的元素返回
boolean remove(Object o):从集合中删除指定的元素
boolean removeAll(Collection<?> c):从集合中删除一个指定的集合元素。

C:修改功能
E set(int index, E element):把指定索引位置的元素修改为指定的值,返回修改前的值。

D:获取功能
E get(int index):获取指定位置的元素
Iterator iterator():就是用来获取集合中每一个元素。

E:判断功能
boolean isEmpty():判断集合是否为空。
boolean contains(Object o):判断集合中是否存在指定的元素。
boolean containsAll(Collection<?> c):判断集合中是否存在指定的一个集合中的元素。

F:长度功能
int size():获取集合中的元素个数

G:把集合转换成数组
Object[] toArray():把集合变成数组。
  1. ArrayList基本操作
public class ArrayListTest {
    public static void main(String[] agrs){
        //创建ArrayList集合:
        List<String> list = new ArrayList<String>();
        System.out.println("ArrayList集合初始化容量:"+list.size());

        //添加功能:
        list.add("Hello");
        list.add("world");
        list.add(2,"!");
        System.out.println("ArrayList当前容量:"+list.size());

        //修改功能:
        list.set(0,"my");
        list.set(1,"name");
        System.out.println("ArrayList当前内容:"+list.toString());

        //获取功能:
        String element = list.get(0);
        System.out.println(element);

        //迭代器遍历集合:(ArrayList实际的跌倒器是Itr对象)
        Iterator<String> iterator =  list.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }

        //for循环迭代集合:
        for(String str:list){
            System.out.println(str);
        }

        //判断功能:
        boolean isEmpty = list.isEmpty();
        boolean isContain = list.contains("my");

        //长度功能:
        int size = list.size();

        //把集合转换成数组:
        String[] strArray = list.toArray(new String[]{});

        //删除功能:
        list.remove(0);
        list.remove("world");
        list.clear();
        System.out.println("ArrayList当前容量:"+list.size());
    }
}
  1. LinkedList基本操作
public class LinkedListTest {
    public static void main(String[] agrs){
        List<String> linkedList = new LinkedList<String>();
        System.out.println("LinkedList初始容量:"+linkedList.size());

        //添加功能:
        linkedList.add("my");
        linkedList.add("name");
        linkedList.add("is");
        linkedList.add("jiaboyan");
        System.out.println("LinkedList当前容量:"+ linkedList.size());

        //修改功能:
        linkedList.set(0,"hello");
        linkedList.set(1,"world");
        System.out.println("LinkedList当前内容:"+ linkedList.toString());

        //获取功能:
        String element = linkedList.get(0);
        System.out.println(element);

        //遍历集合:(LinkedList实际的跌倒器是ListItr对象)
        Iterator<String> iterator =  linkedList.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
        //for循环迭代集合:
        for(String str:linkedList){
            System.out.println(str);
        }

        //判断功能:
        boolean isEmpty = linkedList.isEmpty();
        boolean isContains = linkedList.contains("jiaboyan");

        //长度功能:
        int size = linkedList.size();

        //删除功能:
        linkedList.remove(0);
        linkedList.remove("jiaboyan");
        linkedList.clear();
        System.out.println("LinkedList当前容量:" + linkedList.size());
    }
}

二、其他用到过的方法

  1. List集合复制/拷贝(因为list是引用类型,会修改)
得到位于内存中不同空间的副本 的三种方法:

法一:
List old = new ArrayList();
**List new = new ArrayList(old);**

法二:
List old = new ArrayList();
List new = new ArrayList();
**new.addAll(old);**

法三:
List old = new ArrayList();
List new = new ArrayList(Arrays.asList(new Object[old.size()]));  
Collections.copy(new, old);  
/*


*/注意这种方式,如果你直接这样写:

List new = new ArrayList();  
Collections.copy(new, old);

会报错:java.lang.IndexOutOfBoundsException: Source does not fit in dest

原因是你使用该方法时,会先比较目标集合和源集合的size,而你直接new ArrayList();还没来得及复制,目标集合的size为0,和源集合的size不一样,就会报错。注:new ArrayList(int size)定义的是该集合的的容纳能力为size,并不是说目标集合中就有了size个元素。所以要这样写:new ArrayList(Arrays.asList(new Object[old.size()]));
另外的一种不同作用的方法:
List old = new ArrayList<>();
List new = old;

只是定义了另一个引用,但是指向的内容还是源集合指向的内容。
所以对其修改当然会影响源集合
  1. 如原来有一个集合list,list里面是有数据的,现在如果把list中的集合倒序过来
Collections.reverse(list);