JasperFillManager.fillReport(filePath+".jasper", param, con); を呼び出したい ここで、param はタイプ Map を受け入れることになっています。解決策はありますか
C++で64ビットを超える整数を保存するには?
長さが 64 ビットを超える整数を格納したいと考えています。各エントリがアプリケーションに追加されると、整数あたりのビット数は数百万に達する可能性があります。そして、64 個のそのような (同じ長さの) 整数に対して、ビットごとの AND 演算を実行する必要があります。
では、操作を時間効率的にするための最適な C++ データ構造は何でしょうか? 以前は、長さを動的に増やすことができるため、ベクトルを検討していました。その他のオプションは、std:bitset を使用することです。
しかし、これらの両方のアプローチでビット単位の AND を実行して、最も時間効率の良い方法で実行する方法がわかりません。
ありがとう
4 に答える
別のマップを引数として取るコンストラクターを使用するだけです。
Map<String, Object> map2 = new HashMap<String, Object>(map);
次の例を参照してください。
import java.util.HashMap;
import java.util.Map;
public class Test5 {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("1", 1);
Map<String, Object> map2 = new HashMap<String, Object>(map);
// etc...
}
}
HashMap<String,Integer>
があり、それを に変換する必要がある場合HashMap<String,Object>
は、次のようにします。
HashMap<String, Object> objParams = new HashMap<String, Object>();
for (String key : intParams.keyValues()) {
Integer intValue = intParams.get(key);
objParams.put(key, intValue);
}
はどこにintParams
ありますかHashMap<String,Integer>
。
これは純粋にカフから外れているため、タイプミスがある可能性があります。
objParams
次に、をに渡すことができますfillReport
。
HashMapで値の型を指定しない場合、Javaは暗黙的にオブジェクトの型を与えます。その場合、元のマップを次のように宣言する必要があります。
HashMap objParams = new HashMap();