JAVA——ArrayList集合

  1. List集合存储元素特点:有序可重复

    有序:List集合中的元素有下标

    从0开始,以1递增

    其为collection的子接口,所以有自己独有的方法

  2. 常用方法:

    void add(int index, E element)

    E get(int index)

    int indexOf(Object o) 用的较少

    E remove(int index)

    E set(int index ,E element)

    (泛型)

ArrayList是初始化容量是10,在添加第一个元素的时候变为10,无参构造的时候是0

底层是Object类型的数组

如果需要扩容,底层为按位运算(二进制向右移动一位),增长到原本容量的1.5倍

尽量少的扩容,数组扩容效率较低

缺点:随机增删效率较低,不能存储大数据量,因为很难找到一块连续的大的内存空间

优点:检索效率高,空间大小占用相同,内存地址连续,知道下标,所以可通过数学公式计算

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

public class CollectionList01 {
    public static void main(String[] args) {
        //创建List对象
        List mylist = new ArrayList();
        //添加元素
        mylist.add("a");
        mylist.add("b");
        mylist.add("c");
        mylist.add("d");
        mylist.add("c");
        mylist.add(1,"hello");//在指定下标添加元素,后面的元素往后位移,效率较低
        //迭代器
        Iterator it = mylist.iterator();
        while(it.hasNext()){
            Object elt = it.next();
            System.out.println(elt);
        }
        //get方法,获取List集合指定下标的元素
        Object Obj = mylist.get(0);
        System.out.println(Obj);

        //List集合特有的下标遍历方式
        for(int i=0;i<mylist.size();i++){
            Object obj = mylist.get(i);
            System.out.println(obj);
        }

        //获取对象第一次出现的索引
        System.out.println(mylist.indexOf("hello"));

        //获取指定对象最后输出的索引
        System.out.println(mylist.lastIndexOf("c"));

        //删除指定下标位置的元素
        mylist.remove(0);
        for(int i=0;i<mylist.size();i++){
            Object obj = mylist.get(i);
            System.out.println(obj);
        }

        //修改指定位置元素
        mylist.set(0,"hhhhhh");
        for(int i=0;i<mylist.size();i++){
            Object obj = mylist.get(i);
            System.out.println(obj);
        }
    }
}

运行结果为

a
hello
b
c
d
c
a
a
hello
b
c
d
c
1
5
hello
b
c
d
c
hhhhhh
b
c
d
c

此外

public class ArrrayList02 {
    public static void main(String[] args) {
        Collection coll = new HashSet();
        coll.add(100);
        coll.add(200);
        coll.add(900);
        coll.add(50);
        //通过此方法,可以将HashSet集合转换成List集合
        List list01 = new ArrayList(coll);
        for(int i =0;i<list01.size();i++){
            System.out.println(list01.get(i));
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值