上一篇
Java中使用
PreparedStatement执行SQL添加语句: ,1. 创建SQL模板:
String sql = "INSERT INTO 表名(列1,列2) VALUES(?,?)"; ,2. 预编译语句并设置参数: ,
pstmt.setString(1, "值1"); ,
pstmt.setInt(2, 值2); ,3. 执行更新:
int rows = pstmt.executeUpdate();
集合框架的添加操作
List 集合
List<String> fruitList = new ArrayList<>();
// 基础添加
fruitList.add("Apple"); // 末尾添加单个元素
fruitList.add(1, "Banana"); // 指定索引位置插入
// 批量添加
List<String> newFruits = Arrays.asList("Mango", "Orange");
fruitList.addAll(newFruits); // 合并集合
- 返回值:
add()返回boolean(成功为true) - 注意:索引位置需在
[0, size()]范围内
Set 集合
Set<Integer> numberSet = new HashSet<>(); numberSet.add(10); // 添加元素 numberSet.add(20); System.out.println(numberSet.add(10)); // 输出false (元素已存在)
- 特性:自动去重,添加重复元素返回
false
Map 集合
Map<String, Integer> countryCode = new HashMap<>();
countryCode.put("US", 1); // 添加键值对
countryCode.put("UK", 44);
// 安全添加(当键不存在时)
countryCode.putIfAbsent("JP", 81); // 键不存在才添加
数组的动态添加
由于数组长度固定,推荐转为ArrayList操作:
String[] initialArray = {"A", "B"};
List<String> dynamicList = new ArrayList<>(Arrays.asList(initialArray));
dynamicList.add("C"); // 动态扩展
// 转回数组(可选)
String[] newArray = dynamicList.toArray(new String[0]);
数据库添加操作(JDBC)
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
// 参数绑定
pstmt.setString(1, "John"); // 第一个?占位符
pstmt.setString(2, "john@example.com");
int rowsAffected = pstmt.executeUpdate(); // 执行添加
System.out.println("插入行数: " + rowsAffected);
} catch (SQLException e) {
e.printStackTrace();
}
- 关键点:
- 使用
PreparedStatement防SQL注入 executeUpdate()返回受影响行数- 资源自动关闭(try-with-resources)
- 使用
并发场景下的线程安全操作
// 线程安全列表
List<String> syncList = Collections.synchronizedList(new ArrayList<>());
syncList.add("thread-safe");
// ConcurrentHashMap高效并发
ConcurrentMap<String, Integer> concurrentMap = new ConcurrentHashMap<>();
concurrentMap.put("key", 100);
最佳实践与注意事项
-
集合选择原则:

- 快速随机访问 →
ArrayList - 频繁增删 →
LinkedList - 去重 →
HashSet/TreeSet - 键值存储 →
HashMap/TreeMap
- 快速随机访问 →
-
性能优化:
// 初始化指定容量(避免扩容开销) List<String> optimizedList = new ArrayList<>(1000);
-
空值处理:

ArrayList/HashMap允许null元素ConcurrentHashMap禁止null值
-
不可变集合(Java 9+):
List<String> unmodifiableList = List.of("A", "B", "C"); unmodifiableList.add("D"); // 抛出UnsupportedOperationException
常见错误规避
| 错误案例 | 修正方案 |
|---|---|
list.add(5, "X") 但list.size()=3 |
确保索引≤当前长度 |
map.put(null, 100) 但使用TreeMap |
改用HashMap或非null键 |
| 循环中直接删除集合元素 | 使用Iterator.remove() |
通过上述示例和规范,可高效实现Java中的各类添加操作,重点在于:
- 集合选择匹配业务场景
- 并发环境使用线程安全类
- 数据库操作务必参数化防注入
- 不可变集合提升代码健壮性
权威参考:
Oracle官方Java文档 Collections Framework
《Effective Java》第4章 泛型与集合(Joshua Bloch著)
JDBC规范 JSR 221

