集合之--ArrayList操作

  • 插入元素

    逐条加入

    ArrayList<String> alist = new ArrayList();
    alist.add("lambo");

    在指定地点加入

    alist.add(1,"lambo2")

    将另一个ArrayList加入当前ArrayList

    ArrayList alist2 = new ArrayList();
    alist2.add("lambos");
    alist.addAll(alist2);
  • 删除元素

    删除对应位置的内容

    alist.remove(1);
    

    删除整个ArrayList

    alist.clear();
    

    按照条件删除对应字段

    alist.removeIf(str -> str.length() > 5)//这里删除的是长度5以上的字段,使用的是Lambda表达式,具体的Lambda以后在详细说明
    
  • 遍历

    iterator遍历

    Iterator it = alist.iterator();
    while (it.hasNext()) {
        it.next();
    }
    

    for循环遍历

    for (int i = 0; i < alist.size(); i++) {
            alist.get(i);
        }
    

    for each循环遍历

    for (String s:alist) {
            System.out.println(s);
        }
    
  • 总结

    ArrayList和LinkedList由于都是实现的List类,所以大部分操作都是类似的,熟悉了LinkedList的相关操作,ArrayList大部分也就都会了,但是这里要说明的这两个list的不同之处,方便在实际开发中进行选择

    ArrayList是基于索引的数据结构,通过索引来读取数据比较快,但ArrayList有个扩容操作,会消耗一定资源,并且对于添加和删除效率比较差,因为执行添加删除操作之后ArrayList要重新排布插入点或删除点后面的全部数据,越靠前,消耗越大。

    LinkedList是基于链表的数据结构读取数据是比较慢,因为它要从第一个节点往后遍历,但是对于插入删除数据,LinkedList是比较快的,因为LinkedList的节点与节点之间是不连续的,是通过记录上一个节点和下一个节点将整个list串起来的,所以在执行插入删除操作时,只需要修改对应的上一个节点和下一个节点就好。

你可能感兴趣的:(集合)