我会尽量保持清醒.
我有N个对象列表.每个对象都存储一个ID字段和一个值字段.
LIST A | ID1 v1 | ID2 v2 | ID3 v3 |
LIST B | ID1 v1' | ID2 v2' | ID3 v3' |
LIST C | ID1 v1''| ID2 v2''| ID3 v3''|
Run Code Online (Sandbox Code Playgroud)
我需要创建一个哈希映射
Map<Integer,List<Double>>
Run Code Online (Sandbox Code Playgroud)
像这样:
------------------------
| ID1 | v1 v1' v1'' |
| ID2 | v2 v2' v2'' |
| ID3 | v3 v3' v3'' |
------------------------
Run Code Online (Sandbox Code Playgroud)
对于每个列表,我现在使用此代码:
object_list.forEach( v -> {
String id = v.getID();
Double value = v.getValue();
if(map.containsKey(id)){
map.get(id).add(value);
}
else{
List<Double> list …Run Code Online (Sandbox Code Playgroud) 我有以下表格的地图:
Map<Integer, Map<String,Double>> START
Run Code Online (Sandbox Code Playgroud)
让INNER成为内部地图,即
Map<String,Double>
Run Code Online (Sandbox Code Playgroud)
例如,我想在新的地图中减少START地图
Map<Integer, Double> END
Run Code Online (Sandbox Code Playgroud)
它具有相同的键,但值不同.特别是,对于每个键,我希望新的Double值是INNER映射中相应键的值的SUM.
我怎样才能通过使用JAVA 8的STREAM API实现这一目标?
感谢大家.
编辑:示例地图是
------------------------------
| | 2016-10-02 3.45 |
| ID1 | 2016-10-03 1.23 |
| | 2016-10-04 0.98 |
------------------------------
| | 2016-10-02 1.00 |
| ID2 | 2016-10-03 2.00 |
| | 2016-10-04 3.00 |
------------------------------
Run Code Online (Sandbox Code Playgroud)
我想要一个像以下一样的新地图:
--------------------------------
| | |
| ID1 | SUM(3.45,1.23,0.98) |
| | |
--------------------------------
| | |
| ID2 | SUM(1.00,2.00,3.00) |
| | |
--------------------------------
Run Code Online (Sandbox Code Playgroud) 我有以下数据结构:
Map<Integer, Map<String,Double>>
----------------
| | a 2 |
| 100 | b 1 |
| | c 2 |
----------------
| | a 2 |
| 101 | c 2 |
----------------
| | a 2 |
| 102 | b 1 |
| | c 2 |
----------------
Run Code Online (Sandbox Code Playgroud)
目标:获取包含具有最大大小的内部地图的外部地图的ID.
例如,100或者102都包含大小为3的内部地图.
Stream API例如,我该如何使用?
我的数据库中有 3 个用户(架构)。
用户 A 持有表 X
我为用户 B 创建了一个视图 Y,为用户 C 创建了一个视图 Z。这些视图是相同的:
CREATE OR REPLACE FORCE EDITIONABLE VIEW "user_name"."view_name" ("field_1", "field_2") AS
SELECT field1_1
, field2_2
FROM User_A.X;
Run Code Online (Sandbox Code Playgroud)
第一个视图工作正常;对于第二个,我在尝试查看数据时出现以下错误(来自 SQL 开发人员):
ORA-04063: 视图“User_C.Z”有错误。
我试图通过 SQL PLUS 创建它:它是在编译错误时创建的,但“显示错误”命令返回“无错误”。
有什么建议吗?
我的目录包含以下文件:
FILE1_h0_something_1950_other.gz
FILE2_h0_something_1950_other.gz
FILE3_h0_something_1950_other.gz
Run Code Online (Sandbox Code Playgroud)
这是我的bash脚本的一部分:
year=1950
for nc_gz in "$input_path/*h3*$year*.gz"; do
gunzip $nc_gz
done
Run Code Online (Sandbox Code Playgroud)
我注意到有些时候(奇怪的行为……我总是或永远没有,除非如此)在我的目录中创建了一个名为* h3 * 1950 *的文件。
当目录不包含gz文件时,代码将失败。
问题出在哪里?
谢谢
我需要对Oracle数据集进行后处理才能找到热浪的数量.根据定义,当数据值至少连续两次大于阈值时发生热浪.
例如,给定阈值= 20和序列
23 31 32 17 16 23 16 21 22 18
Run Code Online (Sandbox Code Playgroud)
热浪是2:
{23,31,32} and {21,22}
Run Code Online (Sandbox Code Playgroud)
并且最长的一个长度为3(较大子集的大小)
我的输入数据集由几个序列组成; 示例输入结果集是:
-----------------------------
| ID | DAY | VALUE |
-----------------------------
| 100 | 1/1/17 | 20 |
| 100 | 2/1/17 | 21 |
| 200 | 1/1/17 | 12 |
| 200 | 2/1/17 | 24 |
| ... ... ...
Run Code Online (Sandbox Code Playgroud)
换句话说,我每个ID都有一个序列,我需要输出类似的东西:
-----------------------
| ID | #heat waves |
-----------------------
| 100 | 3 |
| 200 | 1 | …Run Code Online (Sandbox Code Playgroud) 我需要对String表示日期的列表进行排序.
我尝试了以下代码:
try {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
Collections.sort(days,
(s1, s2) -> sdf.parse(s1).compareTo(sdf.parse(s2)));
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但在Eclipse中我得到编译时错误sdf.parse(s1):
未处理的异常类型
ParseException
有解决方案吗
我的输入列表是:
[2016-01-02, 2016-01-03, 2016-01-01]
Run Code Online (Sandbox Code Playgroud)