Java如何高效遍历Result结果集?
- 后端开发
- 2025-05-29
- 4
在Java开发中,遍历result(结果集或集合对象)是常见操作,具体方法取决于result的数据类型,以下是针对不同场景的详细遍历方案,包含代码示例和最佳实践。
集合类结果的遍历
如果result是List、Set或数组等集合对象,可以通过以下方式遍历:
增强for循环(推荐)
List<String> result = Arrays.asList("A", "B", "C"); for (String item : result) { System.out.println(item); }
Java 8+ Stream API
result.stream().forEach(item -> { System.out.println(item); });
传统for循环(适合需要索引的场景)
for (int i = 0; i < result.size(); i++) { System.out.println(result.get(i)); }
迭代器(Iterator)
Iterator<String> iterator = result.iterator(); while (iterator.hasNext()) { String item = iterator.next(); System.out.println(item); }
数据库结果集(ResultSet)的遍历
若result是JDBC查询返回的ResultSet对象,需按以下步骤处理:
try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet result = stmt.executeQuery("SELECT * FROM table")) { while (result.next()) { // 逐行遍历 int id = result.getInt("id"); String name = result.getString("name"); System.out.println(id + ": " + name); } } catch (SQLException e) { e.printStackTrace(); }
关键点
- 使用try-with-resources确保自动关闭连接。
- 通过result.next()移动游标并判断是否有数据。
- 按列名或索引(如result.getInt(1))获取字段值。
Map类型结果的遍历
如果result是Map结构(如HashMap),可通过键值对遍历:

Map<String, Integer> result = new HashMap<>(); result.put("Apple", 10); result.put("Banana", 20); // 遍历键 for (String key : result.keySet()) { System.out.println("Key: " + key); } // 遍历键值对(推荐) for (Map.Entry<String, Integer> entry : result.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); }
JSON或自定义对象的遍历
若result是JSON字符串或自定义对象,需先解析为Java对象:
使用Gson/Jackson解析JSON
// 假设result是JSON数组字符串 String jsonResult = "[{"name":"Tom"}, {"name":"Jerry"}]"; List<User> users = new Gson().fromJson(jsonResult, new TypeToken<List<User>>(){}.getType()); users.forEach(user -> { System.out.println(user.getName()); });
自定义对象遍历
class User { private String name; // Getter/Setter省略 } List<User> result = getUserList(); result.forEach(user -> System.out.println(user.getName()));
注意事项
- 资源释放:数据库ResultSet、Connection等必须关闭,避免内存泄漏。
- 空值处理:遍历前检查result是否为null,防止NullPointerException。
- 性能优化:
- 大数据量时避免频繁IO操作。
- 使用分页查询减少内存占用。
- 并发安全:多线程环境下需同步遍历操作(如使用ConcurrentHashMap)。
引用说明
- Oracle官方文档:Java Collections Framework
- JDBC教程:Processing ResultSet
- Google Gson:GitHub仓库
通过以上方法,开发者可根据具体场景选择最合适的遍历策略,确保代码高效且易维护。

