我基本上是在尝试创建数据结构
List
我有一张如下图所示的地图,其中有一个键,值为 Map<String, List<String> newdatamap = new HashMap<>();
map.put ("payerName", Arrays.asList("wpn", "wpfnb", "dgeft", "xbthy"));
map.put ("fixedRate", Arrays.asList("dd", "ww", "trrty", "httyure"))
:
Key Value
B1 payerName ----> "wpn", "wpfnb", "dgeft", "xbthy"
fixedRate ----->"dd", "ww", "trrty", "httyure"
B2 payerName ----> "SSSwpn", "wpfSSSnb", "GGGdgeft", "xbtYYYYhy"
fixedRate ----->"WWdd", "wTTYw", "YYYYtrrty", "IIIhttyure"
我想在上一张地图上添加另一张地图,以便有一个键,其值将是上面的地图。这是正确的数据结构,我们如何实现它?
我想要下面显示的内容
Map<String, Map<String, List<String>>>.
如上所示,地图中只引入了一个新密钥,其值为上一个地图。所以请告知如何创建这样的地图
final Table<String, String, List<String>> values = HashBasedTable.create();
values.put("B1", "payerName", Lists.newArrayList("wpn", "wpfnb", "dgeft", "xbthy"));
System.out.println(values.get("B1", "payerName")); // prints the list
我已经尝试过我在下面展示的Google guava库,但我希望通过java本身实现相同目标。请告知我如何通过java实现相同的目标
$inizio_giorno=oreToMinuti("08:00");
$fine_giorno=oreToMinuti("20:00");
$inizio_notte=oreToMinuti("20:00");
$fine_notte=oreToMinuti("08:00");
$conto_minuti_giorno="";
$conto_minuti_notte="";
while($row2=mysql_fetch_array($result2)){
if($row2["verso"]=="entrata"){
if(oreToMinuti($row2["ora_effettiva"])<$inizio_giorno){
$conto_minuti_notte=$fine_notte-oreToMinuti($row2["ora_effettiva"]);
}
if(oreToMinuti($row2["ora_effettiva"])>$inizio_giorno){
$conto_minuti_giorno=oreToMinuti($row2["ora_effettiva"])-$inizio_giorno;
}
}else{
if(oreToMinuti($row2["ora_effettiva"])<$fine_giorno){
if(oreToMinuti($row2["ora_effettiva"])<$fine_notte){
$conto_minuti_notte=($fine_notte-oreToMinuti($row2["ora_effettiva"]))-$conto_minuti_notte;
}else{
$conto_minuti_giorno=oreToMinuti($row2["ora_effettiva"])-$inizio_giorno-$conto_minuti_giorno;
}
}else{
$conto_minuti_notte=oreToMinuti($row2["ora_effettiva"])-$inizio_notte;
}
}
}
echo str_replace("-","",$conto_minuti_giorno." e ".$conto_minuti_notte)."<br />";
答案 0 :(得分:1)
你快到了:
Map<String, Map<String, List<String>>> map = new HashMap<> ();
map.put("B1", newdatamap);
答案 1 :(得分:1)
关于assylias的答案的更多细节
Map<String, Map<String, List<String>>> ultimateMap = new HashMap<String,Map<String, List<String>>> ();
Map<String, List<String>> map1 = new HashMap<String, List<String>>();
map1.put ("payerName", Arrays.asList("wpn", "wpfnb", "dgeft", "xbthy"));
map1.put ("fixedRate", Arrays.asList("dd", "ww", "trrty", "httyure"));
Map<String, List<String>> map2 = new HashMap<String, List<String>>();
map2.put ("payerName", Arrays.asList("SSSwpn", "wpfSSSnb", "GGGdgeft", "xbtYYYYhy"));
map2.put ("fixedRate", Arrays.asList("WWdd", "wTTYw", "YYYYtrrty", "IIIhttyure"));
ultimateMap.put("B1", map1);
ultimateMap.put("B2", map2);
我无法将其添加为对上一个答案的评论(太长时间)。所以添加了一个新答案。
答案 2 :(得分:0)
这超出了问题的范围,但是OP在评论中问我,我在这里回答:
class Info {
public final String payerName;
public final String fixedrate;
public Info(String pn, String fr) {
payerName = pn;
fixedRate = fr;
}
}
[...]
Collection<Info> myInfo = new LinkedList<>();
myInfo.add(new Info("wpn", "dd"));
myInfo.add(new Info("wpfnb", "ww"));
myInfo.add(new Info("dgeft", "trrty"));
myInfo.add(new Info("xbthy", "httyure"));
Map<String, Collection<Info>> myData = new HashMap<>();
myData.put("B1", myInfo);