顺序表的基本操作java举例包括按照位置查找,按值查找,插入删除,输出,合并有序表
时间: 2024-10-14 17:07:54 浏览: 5
顺序表在Java中通常通过数组实现,其基本操作包括:
1. 按照位置查找 (索引查找):
```java
public int find(int index) {
if (index >= 0 && index < size) {
return data[index]; // 如果索引在范围内,返回对应元素
} else {
throw new IndexOutOfBoundsException("Index out of bounds.");
}
}
```
2. 按值查找 (线性搜索):
```java
public int search(int value) {
for (int i = 0; i < size; i++) {
if (data[i] == value) {
return i; // 找到元素的位置
}
}
return -1; // 如果未找到,返回-1表示不存在
}
```
3. 插入 (通常在指定位置插入):
```java
public void insertAt(int index, int value) {
if (index < 0 || index > size) {
throw new IndexOutOfBoundsException();
}
System.arraycopy(data, index, data, index + 1, size - index); // 移动元素
data[index] = value;
size++; // 更新大小
}
```
4. 删除 (移除指定位置的元素):
```java
public void removeAt(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
System.arraycopy(data, index + 1, data, index, size - index - 1);
data[size - 1] = 0; // 或者设置为默认值,视情况而定
size--; // 更新大小
}
```
5. 输出 (遍历打印所有元素):
```java
public void print() {
for (int i = 0; i < size; i++) {
System.out.print(data[i] + " ");
}
System.out.println(); // 结束行
}
```
6. 合并有序表 (这里假设有一个已排序的列表listToMerge):
```java
public void merge(SequenceList listToMerge) {
int[] mergedData = Arrays.copyOf(this.data, this.size + listToMerge.getSize());
int i = 0, j = this.size;
while (j < listToMerge.getSize()) {
if (mergedData[i] <= listToMerge.getData(j)) {
mergedData[i++] = listToMerge.getData(j++);
} else {
mergedData[i++] = this.data[j++];
}
}
this.data = mergedData;
this.size += listToMerge.getSize();
}
```