在Java中,无法直接定义无限长度的数组,因为数组的大小必须在创建时确定,并且在创建后不能动态扩展。但是,可以使用以下方法来模拟无限长度的数组行为:
1. 使用`ArrayList`:
import java.util.ArrayList;
public class InfiniteArray {
private ArrayList
array; public InfiniteArray() {
this.array = new ArrayList<>();
}
public void add(int value) {
array.add(value);
}
public int get(int index) {
if (index >= array.size()) {
return 0; // 占位符或默认值
}
return array.get(index);
}
}
2. 使用`StringBuilder`:
public class InfiniteStringBuilder {
private StringBuilder sb;
public InfiniteStringBuilder() {
this.sb = new StringBuilder();
}
public void append(char c) {
sb.append(c);
}
public String toString() {
return sb.toString();
}
}
3. 使用自定义类模拟动态数组:
public class DynamicArray
{ private Object[] array;
private int size;
public DynamicArray() {
this.array = new Object; // 初始容量
this.size = 0;
}
public void add(T obj) {
if (size == array.length) {
// 如果数组已满,扩展数组容量
Object[] newArray = new Object[array.length * 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
array[size++] = obj;
}
public T get(int index) {
if (index >= size) {
return null; // 或者抛出异常
}
return (T) array[index];
}
}
以上代码展示了如何使用`ArrayList`、`StringBuilder`以及自定义类来模拟无限长度的数组行为。您可以根据具体需求选择合适的方法