Java Vector setElementAt() 方法
setElementAt()
是 Java 中 Vector
类提供的一个方法,用于修改向量(Vector)中指定位置的元素。这个方法允许你直接更新向量中的特定元素,而无需先删除旧元素再插入新元素。
方法说明:
public void setElementAt(E obj, int index)
参数说明
obj
- 类型:E(泛型,与Vector定义的类型一致)
- 描述:要设置的新元素
- 示例:可以是任何对象,如String、Integer等
index
- 类型:int
- 描述:要修改的元素位置(索引)
- 注意:索引从0开始计数
返回值
这个方法没有返回值(void 类型),它只是修改向量中指定位置的元素。
使用示例
实例
import java.util.Vector;
public class VectorExample {
public static void main(String[] args) {
// 创建一个包含字符串的 Vector
Vector<String> fruits = new Vector<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
System.out.println("修改前的 Vector: " + fruits);
// 使用 setElementAt() 修改第二个元素
fruits.setElementAt("Grape", 1);
System.out.println("修改后的 Vector: " + fruits);
}
}
public class VectorExample {
public static void main(String[] args) {
// 创建一个包含字符串的 Vector
Vector<String> fruits = new Vector<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
System.out.println("修改前的 Vector: " + fruits);
// 使用 setElementAt() 修改第二个元素
fruits.setElementAt("Grape", 1);
System.out.println("修改后的 Vector: " + fruits);
}
}
输出结果:
修改前的 Vector: [Apple, Banana, Orange] 修改后的 Vector: [Apple, Grape, Orange]
注意事项
1. 索引越界异常
如果指定的 index 参数超出 Vector 的有效范围(小于 0 或大于等于 size()),会抛出 ArrayIndexOutOfBoundsException。
错误示例:
实例
Vector<Integer> numbers = new Vector<>();
numbers.add(10);
numbers.setElementAt(20, 1); // 抛出 ArrayIndexOutOfBoundsException
numbers.add(10);
numbers.setElementAt(20, 1); // 抛出 ArrayIndexOutOfBoundsException
2. 线程安全性
Vector 是线程安全的,setElementAt() 方法也是同步的,可以在多线程环境中安全使用。
3. 与 set() 方法的区别
setElementAt()
是Vector特有的方法set()
方法来自List接口,功能相同但返回被替换的旧元素- 推荐在新代码中使用
set()
方法以保持与List接口的一致性
实际应用场景
场景 1: 更新数据集合
当需要根据条件修改集合中的特定元素时,可以使用此方法。
实例
Vector<Student> students = new Vector<>();
// ... 添加学生对象
// 找到需要修改的学生并更新成绩
students.setElementAt(new Student("John", "A"), 2);
// ... 添加学生对象
// 找到需要修改的学生并更新成绩
students.setElementAt(new Student("John", "A"), 2);
场景 2: 游戏开发
在游戏开发中,可以用来更新游戏对象的状态。
实例
Vector<GameObject> objects = new Vector<>();
// ... 初始化游戏对象
// 更新特定位置的游戏对象
objects.setElementAt(new PowerUp(), 3);
// ... 初始化游戏对象
// 更新特定位置的游戏对象
objects.setElementAt(new PowerUp(), 3);
总结
setElementAt()
方法是 Vector 类中用于修改元素的重要方法,它提供了直接修改指定位置元素的能力。虽然在新代码中推荐使用实现了 List 接口的 ArrayList 和 set() 方法,但在需要线程安全或维护旧代码时,了解这个方法仍然很有价值。
记住使用时要注意索引范围,避免越界异常,并根据实际需求选择合适的集合类型和方法。
点我分享笔记