タプル オブジェクトを並行 Java コレクションに格納し、パターンに一致する最初の要素を返す効率的なブロッキング クエリ メソッドを使用したいと考えています。そのような要素が利用できない場合、そのような要素が存在するまでブロックされます。
たとえば、クラスがある場合:
public class Pair {
public final String first;
public final String Second;
public Pair( String first, String second ) {
this.first = first;
this.second = second;
}
}
そして、次のようなコレクション:
public class FunkyCollection {
public void add( Pair p ) { /* ... */ }
public Pair get( Pair p ) { /* ... */ }
}
次のようにクエリしたいと思います。
myFunkyCollection.get( new Pair( null, "foo" ) );
second
これは、フィールドが「foo」に等しい最初の使用可能なペアを返すか、そのような要素が追加されるまでブロックします。別のクエリの例:
myFunkyCollection.get( new Pair( null, null ) );
値に関係なく、最初に使用可能なペアを返す必要があります。
ソリューションは既に存在しますか? そうでない場合、メソッドを実装するために何を提案しますget( Pair p )
か?
明確化:メソッドget( Pair p)
は要素も削除する必要があります。名前の選択はあまり賢明ではありませんでした。より適切な名前はtake( ... )
.