欢迎访问宙启技术站
智能推送

Java函数如何实现列表的增删改查操作?

发布时间:2023-06-10 03:56:15

Java是一门面向对象的编程语言,列表又是面向对象编程中常用的数据结构,因此,在Java中实现列表的增删改查操作是非常常见和重要的任务。

Java中实现列表,一般可以使用数组或者集合类库中提供的数据结构(如ArrayList、LinkedList、HashMap等)来实现。不同的数据结构使用不同的代码实现增删改查操作,下面将分别对数组和集合类库中的ArrayList和LinkedList数据结构进行说明。

一、数组实现列表的增删改查操作

1. 增加元素

数组可以通过下标的方式进行增加元素,用数组的长度作为下标,将要添加的元素添加到数组的最后,具体方式如下:

int[] array = new int[]{1, 2, 3}; 
int value = 4;
// 创建一个新的数组,长度为原数组长度+1
int[] newArray = new int[array.length+1]; 
// 将原数组的元素复制到新数组中
System.arraycopy(array, 0, newArray, 0, array.length); 
// 将要添加的元素添加到新数组最后
newArray[array.length] = value; 
// 将原数组指向新数组
array = newArray;

2. 删除元素

数组可以通过下标的方式进行删除元素,具体方式如下:

int[] array = new int[]{1, 2, 3};
int index = 1; // 删除索引为1的元素
// 创建一个新数组,长度为原数组-1
int[] newArray = new int[array.length-1];
// 将原数组索引为0到index的元素复制到新数组中
System.arraycopy(array, 0, newArray, 0, index); 
// 将原数组索引为index+1到最后一个元素的值复制到新数组中
System.arraycopy(array, index+1, newArray, index, array.length-index-1); 
// 将原数组指向新数组
array = newArray;

3. 修改元素

数组可以通过下标的方式进行修改元素,具体方式如下:

int[] array = new int[]{1, 2, 3};
int index = 1; // 修改索引为1的元素
int value = 4; // 修改后的值为4
array[index] = value; 

4. 查找元素

数组可以通过下标的方式进行查找元素,具体方式如下:

int[] array = new int[]{1, 2, 3};
int index = 2; // 查询索引为2的元素
int value = array[index]; 
System.out.println(value);

二、集合类库中的ArrayList和LinkedList实现列表的增删改查操作

1. 增加元素

ArrayList和LinkedList可以通过add方法进行增加元素,ArrayList还可以使用ensureCapacity方法更改容量,具体方式如下:

List<Integer> arrayList = new ArrayList<Integer>(); 
// 添加元素
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
// 指定位置添加元素
arrayList.add(1, 4);

List<Integer> linkedList = new LinkedList<Integer>(); 
// 添加元素
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
// 指定位置添加元素
linkedList.add(1, 4);

2. 删除元素

ArrayList和LinkedList可以通过remove方法进行删除元素,具体方式如下:

List<Integer> arrayList = new ArrayList<Integer>();
// 添加元素
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
int index = 1; // 删除索引为1的元素
// 删除元素
arrayList.remove(index);

List<Integer> linkedList = new LinkedList<Integer>();
// 添加元素
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
int index = 1; // 删除索引为1的元素
// 删除元素
linkedList.remove(index);

3. 修改元素

ArrayList和LinkedList可以通过set方法进行修改元素,具体方式如下:

List<Integer> arrayList = new ArrayList<Integer>();
// 添加元素
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
int index = 1; // 修改索引为1的元素
int value = 4; // 修改后的值为4
// 修改元素
arrayList.set(index, value);

List<Integer> linkedList = new LinkedList<Integer>();
// 添加元素
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
int index = 1; // 修改索引为1的元素
int value = 4; // 修改后的值为4
// 修改元素
int i = 0;
for (Integer v : linkedList) {
    if (i == index) {
        linkedList.set(i, value);
        break;
    }
    i++;
}

4. 查找元素

ArrayList可以通过get方法进行查找元素,LinkedList可以通过get和indexOf方法进行查找元素,具体方式如下:

List<Integer> arrayList = new ArrayList<Integer>();
// 添加元素
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
int index = 2; // 查询索引为2的元素
// 查询元素
int value = arrayList.get(index); 
System.out.println(value);

List<Integer> linkedList = new LinkedList<Integer>();
// 添加元素
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
int index = 2; // 查询元素为3的索引
// 查询元素
int i = 0;
for (Integer v : linkedList) {
    if (v == 3) {
        index = i;
        break;
    }
    i++;
}
int value = linkedList.get(index); 
System.out.println(value);
// 查询索引
index = linkedList.indexOf(3); 
System.out.println(index);

总结而言,Java实现列表的增删改查操作是非常灵活的,既可以使用数组自己实现,也可以使用Java集合类库提供的数据结构。选择何种方式还需要结合实际业务需求和性能等方面综合考量。