·ArrayList为java中的动态数组
和静态数组相比,它更加地灵活,不需要在开头固定数组长度。
在ArrayList中,读取数据等操作并不像静态数组一样直接通过下标读取,如:
它是通过各种函数实现读取,存储,删除等操作的。
如图所示,首先它的创建格式为:ArrayList<数据类型> 变量名 = new ArrayList<>;
从中可以明显感受到它和静态数组的区别——不用固定长度
接着是一些它常用的函数:
add(i,e):i为索引,e为添加的元素,即在索引i处添加元素e,若i后方还有元素,则会自动将后方元素后移一位
remove(i):删除索引i处的元素
get(i):返回索引i处的元素
set(i,e):将索引i处的元素替换为元素e
size():获取数组长度
contains(e):是否包含e元素
isEmpty():判断是否为空,是返回true,不是返回false
·用ArrayList实现set
在set中,存储的元素都是不同的,具有唯一性,所以我们在输入时需要检查set中是否已经存在该元素了,在这里就主要说一下add()方法的变化,其余个人认为没有什么太大的区别
当结果为false时代表set中已经含有该元素了,结果为true时表示先前没有该元素并且将其添加到set中
public boolean add(E e) {
int i = 0;
for (i = 0; i < set.size(); i++){
if (set.get(i) == e){
return false;
}
}
set.add(e);
return true;
}
·LinkedList为java中的链表
在链表中有两个属性:value用来存储元素的值,next用来指向下个元素
创建形式为:LinkedList<数据类型> 变量名 = new LinkedList<>;
下面是一些它常用的函数,和ArrayList基本一致:
add(e): 将元素e添加到链表的末尾
add(i,e): 在索引i处插入元素e
remove(e): 从链表中删除元素e
remove(i): 删除索引i处的元素
get(int index): 获取索引i处的元素
set(i, e): 将索引i的元素替换为新元素e
size(): 返回链表中元素的个数
contains(e): 判断链表是否包含指定元素e
isEmpty(): 判断链表是否为空。