List与set

1,List与set的区别?

List:元素是有序的,元素可以重复,因为集合体系有索引

set:元素是无序的,元素不可以重复,集合体系没有索引

2,list里面特有的方法:

在制定的位置添加元素add()

在制定位置添加一堆元素addAll()

通过索引获取get(index)

List al= new ArrayList();
al.add("name1");
al.add("name2");
al.add("name3");
for(int i=0;i<al.size();i++)
{
    System.out.println(al.get(i));
}

获取元素的位置

System.out.println(al.indexOf("name2"));

subList()包含头不包含未

        List al2=al.subList(1,3);
        System.out.println(al2);

根据位置获取元素

listIterator

按照角标移除remove()

按角标设置set()

3,迭代器方法产生的并发访问问题:

list中操作元素的方法有两种:集合的方法,迭代器方法

迭代器在操作list时,再用集合的方法访问就是并发访问(同时访问),

所以说,对同一个集合同时进行两种操作是不被允许的

【个人理解(仅供参考):我是将list中看成有一个指针,一个list只有一个指针,这个指针被迭代器使用的时候,再用集合去操作它,就会破坏迭代器的原来的执行路径,从而导致得到与预想不到的结果。所以就规定了在迭代器对集合操作的时候不可以使用集合的方式在去操作list】

原文地址:https://www.cnblogs.com/excellencesy/p/8627149.html