2

JasperFillManager.fillReport(filePath+".jasper", param, con); を呼び出したい ここで、param はタイプ Map を受け入れることになっています。解決策はありますか


C++で64ビットを超える整数を保存するには?

長さが 64 ビットを超える整数を格納したいと考えています。各エントリがアプリケーションに追加されると、整数あたりのビット数は数百万に達する可能性があります。そして、64 個のそのような (同じ長さの) 整数に対して、ビットごとの AND 演算を実行する必要があります。

では、操作を時間効率的にするための最適な C++ データ構造は何でしょうか? 以前は、長さを動的に増やすことができるため、ベクトルを検討していました。その他のオプションは、std:bitset を使用することです。

しかし、これらの両方のアプローチでビット単位の AND を実行して、最も時間効率の良い方法で実行する方法がわかりません。

ありがとう

4

4 に答える 4

2

別のマップを引数として取るコンストラクターを使用するだけです。

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...
    }
}
于 2012-05-03T19:21:58.457 に答える
1

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

于 2012-04-30T23:26:46.937 に答える
0

HashMapで値の型を指定しない場合、Javaは暗黙的にオブジェクトの型を与えます。その場合、元のマップを次のように宣言する必要があります。

HashMap objParams = new HashMap();

于 2012-05-01T03:50:30.803 に答える