Java常用容器基础操作汇总

一、概述

容器是Java的重要组成部分,在实际应用中选择适当的容器,往往能达到事半功倍的效果。

下图为Java集合框架图,图源于菜鸟教程
在这里插入图片描述

Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是哈希表(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

从上图中也可以看到,Java的类基本上都继承自Collection和Map。我们平时使用的主要是一些具体实现类,例如ArrayList,LinkedList,HashSet,HashMap等。本文将对这些容器的基础操作进行汇总,以便复习与查阅。

NOTE: 初始化容器时需要注意抽象类(或接口)和具体实现类的区别。抽象类只关心抽象方法的定义,不关心具体如何实现。抽象类不可以实例化对象,也就是说new后面不能接抽象类,而要接具体实现类。否则会引发错误XXX is abstract; cannot be instantiated

二、各类容器

2.1 List

List是一种接口。使用前需要导入java.util.List相关包。
具体实现类有:

  • ArrayList
  • LinkedList
  • Vector
  • Stack:Vector的子类

ArrayList和LinkedList常放在一起比较,两者都是线程不安全的。ArrayList的底层是Object数组,LInkedList的底层结构是双向链表。所以两者本质的区别类似于数组与链表的区别(读取、删除等操作有不同)。

Vector的底层同样是Object数组,是线程安全的,但当前大部分情况都使用ArrayList。

初始化方法
//List 的ArrayList 实现
List<String> list1 = new ArrayList<>();

// List 的LinkedList 实现
List<String> list2 = new LinkedList<>();

// Stack对象创建
Stack<Integer> stk = new Stack<>();

NOTE:尖括号里不能用基础数据类型,需要包装。

使用方法
  • ArrayList
// 添加元素
list.add(obj);
list.addAll();
// boolean addAll(Collection c);

// 访问元素,按索引
obj = list.get(index);

// 删除元素,按索引
list.remove(index)</
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值