在C#中,DataTable是一个用来存储数据表格的内存类,和数据库的表非常像。有严格数据类型的列定义,数据放在DataTable里面会很规范,操作起来也非常方便。
在Java中没有和DataTable类似的东西,如果取数据表通常使用ResultSet来从数据库中读取数据。在内存中操作数据,需要将数据从ResultSet中提取出来,并存储在其他数据结构中,比如List或Map。
DataTable不仅可以取数据库中的数据,还可以直接在内存中方便的添加或修改数据。还有简单的统计功能,非常方便。
我们来看一下c#中datable 统计 “金额”,条件是"姓名=张三"的代码,然后用java的Map来做同样的功能代码。
c#代码
object result = dataTable.Compute("SUM(金额)", "姓名 = '张三'");
java代码
List<Map<String, Object>> dataList = getDataList();
// 流式操作来进行筛选和统计
double totalAmount = dataList.stream()
.filter(map -> "张三".equals(map.get("姓名")))
.collect(Collectors.summingDouble(map -> (Double) map.get("金额")));
可以看出,c#的代码更加简洁。