集合类的分类和使用

为了满足各种数据结构的需求,java提供了跟多重要的集合类。

集合层次结构图

每个集合类都有不同的特性,根据实际需求选择。

这里写图片描述


  • ArrayList

ArrayList集合中引用一个内部数组,如果满了就创建一个更大的,并将之前较小的数组拷贝到大数组中。

特点:查询快,增删慢

ArrayList<String> list = new ArrayList<String>();  //初始容量为10

//添加一个元素,如果容量已满,增加当前一半的容量,再添加
list.add("0");

//使容量减少至和实际元素数相等
list.trimToSize();

//容量调整,参数为(当前容量+增加量),增加量小于0则不添加,增加量不足当前一半的,自动调整为增加一半,增加量大于一半则添加增加量的值

//例如:当前容量为10,输入9则容量为10,输入11则变为15,输入16则为16
list.ensureCapacity(16);

//返回集合实际元素数
list.size();

//获取指定位置的元素
list.get(0);

//替换位置上已存在元素的内容
list.set(0, "hello");

//指定位置上增加元素,其他元素会后移,会自动增加容量
list.add(1, "1");

//删除指定元素或指定位置元素,其他元素会前移
list.remove(0);
list.remove("1");

  • LinkedList

LinkedList是一种链表结构,每个对象存放在独立的结点中,java中所有链表都是双向的,所以每个结点还保存着直接前驱和后继结点的引用。

特点:增删快,查询慢


  • Vector
    与ArrayList类似,增加了线程安全功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值