Iは、(いくつかのサンプルデータを有する)は、以下のコードを持って、そして次の1にマップのリストの各要素を比較するための任意のより良いまたはパフォーマンスの方法が存在するかどうかを確認したい:リストの要素とJavaのマップの要素を比較するにはどうすればよいですか?
import java.util.*;
public class CompareElements {
private static List<Map<String, String>> sample = new ArrayList<>(0);
private static int MIN = 0;
private static int MAX = 10;
static {
populateListOfMaps();
}
/*
* This is the main part of the question, rest is just to generate test data..
*/
public static void main(String[] args){
// Can we simplify this part using lambda's or any library?
for (int i = 0; i < sample.size() -1; i++) {
for (int j = i+1; j < sample.size(); j++) {
Map<String, String> referenceMap = sample.get(i);
Map<String, String> candideMap = sample.get(j);
if(referenceMap.get("key").equalsIgnoreCase(candideMap.get("key"))){
System.out.println("Equal : " + i + " || " + referenceMap.get("key") + " and "+ j + " || " + candideMap.get("key") + " are pairs");
} else {
System.out.println("Not equal : " + i + " || " + referenceMap.get("key") + " and "+ j + " || " + candideMap.get("key") + " are pairs");
}
}
}
}
private static void populateListOfMaps(){
if(sample.size() <= 10){
Map<String, String> someMap = new HashMap<>(0);
someMap.put("key", "value" + randInt(MIN, MAX));
sample.add(someMap);
populateListOfMaps();
}
}
public static int randInt(int min, int max) {
Random rand = new Random();
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
}
}
私の要件は地図のリストの各要素を比較し、重複を取り除くために等価性をチェックすることです。これは簡単な部分ですが、リアルタイムアプリケーションの各マップは2つのキー値を持ちますカスタムPOJOオブジェクト)。
上記のコードは機能しますが、私はこれをより簡潔で実用的なコードにしたいと考えています。
ラムダまたはストリームを使用できますか?
すべてのポインタ。 。手段? –
「リアルタイム」は、一貫したレイテンシを持っています。 「現実の世界」とは、現実世界では、すなわち。理論的ではない。 –
"上記のコードは機能しますが、これをより簡潔で実用的なコードにしたいと思います。 - あなたの質問は、StackOverflowのトピックから外れているのでhttp://codereview.stackexchange.com/に投稿するべきだと思います。 –