怎么根据List<HashMap<String, Object>> tableData = new ArrayList<>();hashmap中id排序
时间: 2023-11-11 13:11:32 浏览: 85
可以使用Java8的Stream API对List进行排序,代码如下:
```
List<HashMap<String, Object>> sortedList = tableData.stream()
.sorted(Comparator.comparingInt(m -> (int) m.get("id")))
.collect(Collectors.toList());
```
以上代码会根据HashMap中的id字段进行升序排序,并返回一个新的List对象。注意,以上代码假设id字段的值是Integer类型,如果是其他类型需要对比的字段,需要修改`Comparator.comparingInt(m -> (int) m.get("id"))`中的字段名和类型。
相关问题
List<HashMap<String, Object>> tableData = new ArrayList<>(); List<HashMap<String, Object>> list = tableData.stream() .flatMap(map -> map.values().stream()) .filter(value -> value instanceof JSONArray) .map(value -> (JSONArray) value) .filter(jsonArray -> { for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); if (jsonObject != null && jsonObject.containsValue("高")) { return true; } } return false; }).collect(Collectors.toList()); 怎么修改使得返回成立
如果您想要返回包含 "高" 的 JSONArray,可以修改代码如下:
```
List<JSONArray> list = tableData.stream()
.flatMap(map -> map.values().stream())
.filter(value -> value instanceof JSONArray)
.map(value -> (JSONArray) value)
.filter(jsonArray -> {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
if (jsonObject != null && jsonObject.containsValue("高")) {
return true;
}
}
return false;
})
.collect(Collectors.toList());
```
这样会返回一个包含所有包含 "高" 的 JSONArray 的列表。如果您想要返回包含 "高" 的 JSONObject,则可以进行进一步的筛选和处理。
用list<map>将数据库信息展示在前端
好的,以下是一个使用`List<Map>`将数据库信息展示在前端的示例Java代码:
```java
// 定义一个获取数据库中所有信息的方法
public List<Map<String, Object>> getAllData() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
List<Map<String, Object>> dataList = new ArrayList<>();
try {
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询语句
stmt = conn.createStatement();
String sql = "SELECT * FROM table_name";
rs = stmt.executeQuery(sql);
// 处理结果集
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
while (rs.next()) {
Map<String, Object> dataMap = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
dataMap.put(metaData.getColumnName(i), rs.getObject(i));
}
dataList.add(dataMap);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return dataList;
}
```
在这个方法中,我们通过执行查询语句获取数据库中的所有数据,并将结果保存在一个`List<Map>`中。每个`Map`对象表示一条数据,其中`Map`的key表示列名,value表示对应的值。
接下来,我们将这个`List<Map>`传递给前端页面进行展示。以下是一个简单的JSP页面示例,在这个页面中,我们使用JSTL标签库来遍历`List<Map>`,并将每个`Map`中的数据展示出来:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Database Data</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
</thead>
<tbody>
<c:forEach var="data" items="${dataList}">
<tr>
<td>${data.column1}</td>
<td>${data.column2}</td>
<td>${data.column3}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
```
在这个JSP页面中,我们使用`<c:forEach>`标签来遍历`List<Map>`中的每个`Map`对象,并使用`${data.key}`的方式来获取每个key对应的值。这样就可以将数据库中的数据展示在前端页面上了。
阅读全文