Java超详细讲解ArrayList与顺序表的用法
什么是ArrayList和顺序表?
ArrayList是Java中常见的集合类之一,是一个可变长的数组,具有快速的随机访问能力。
顺序表是一种线性结构,是一种物理上连续的存储结构,它的每一个元素都占用一个固定大小的空间。
ArrayList和顺序表的区别
-
ArrayList是动态的,不需要预先分配空间,当存储元素个数超过当前大小时,会自动扩容,并且在使用链表的方式将原来存储的数据进行复制到新分配的内存空间。而顺序表是静态的,在创建时预先分配空间,如需扩容,则需要创建一个更大的数组并将原数组的内容进行复制。
-
由于ArrayList是数组实现的,所以在元素的增删时会涉及到数组元素的后移和前移操作,效率较低。而顺序表在元素的增删时,元素的移动只涉及到单个元素的直接覆盖。
-
ArrayList支持泛型,可以存储不同类型的数据,而顺序表只能存储相同类型的数据。
ArrayList的使用
ArrayList对象的创建
ArrayList的对象创建需要指定集合中存储的数据类型。
ArrayList<String> list = new ArrayList<String>();
向ArrayList中添加元素
使用add()
方法,将元素添加到ArrayList中。
list.add("Java");
list.add("Python");
从ArrayList中获取元素
使用get()
方法,按照索引获取元素。索引从0开始。
String str = list.get(0);
获取ArrayList的长度
使用size()
方法,获取ArrayList中元素的个数。
int size = list.size();
遍历ArrayList中的元素
使用for循环和get()
方法,可以遍历ArrayList中的所有元素。
for(int i=0; i<list.size(); i++){
String str = list.get(i);
System.out.println(str);
}
从ArrayList中移除元素
使用remove()
方法按照索引移除元素。
list.remove(0);
顺序表的使用
顺序表对象的创建
顺序表的对象创建需要指定存储元素的类型和顺序表的大小。
int[] seqList = new int[10];
向顺序表中添加元素
通过循环遍历顺序表,找到第一个为零的位置,将元素添加到该位置。
int index = 0;
while (seqList[index] != 0) {
index++;
}
seqList[index] = 1;
从顺序表中获取元素
通过索引获取顺序表中的元素。
int element = seqList[0];
获取顺序表的长度
使用顺序表的大小获取顺序表的长度。
int size = seqList.length;
遍历顺序表中的元素
通过循环,依次遍历顺序表中的所有元素。
for (int i=0; i<seqList.length; i++) {
int element = seqList[i];
System.out.println(element);
}
从顺序表中移除元素
通过循环遍历顺序表,找到需要删除的元素,并将其后面的元素向前移动。
int index = 0;
while (seqList[index] != removeElement) {
index++;
}
for (int j=index; j<seqList.length-1; j++) {
seqList[j] = seqList[j+1];
}
seqList[seqList.length-1] = 0;
示例说明
示例一
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
String str = list.get(0);
System.out.println(str);
int size = list.size();
for(int i=0; i<size; i++){
String str2 = list.get(i);
System.out.println(str2);
}
输出结果:
Java
Java
Python
示例二
int[] seqList = new int[10];
for (int i=0; i<5; i++) {
seqList[i] = i+1;
}
for (int j=0; j<seqList.length; j++) {
int element = seqList[j];
System.out.println(element);
}
输出结果:
1
2
3
4
5
0
0
0
0
0
从以上示例中可以看出,ArrayList可以很方便地向集合中添加元素并获取元素,而顺序表则需要通过循环遍历来查找空位并添加元素。当需要频繁对集合中的元素进行增删操作时,建议使用ArrayList。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java超详细讲解ArrayList与顺序表的用法 - Python技术站