私は以下のように2つのクラスを持っています。私はこれらの2つのクラスを使用していくつかのものを抽出する必要があります。2つのリストを繰り返し、いくつかのものを抽出する最良の方法は?
public final class ProcessMetadata {
private final String clientId;
private final String deviceId;
// .. lot of other fields here
// getters here
}
public final class ProcMetadata {
private final String deviceId;
private final Schema schema;
// .. lot of other fields here
}
今、私は二つのクラスの上に反復してclientId
与えschema
を抽出していたコードの下に持っています。
public Optional<Schema> getSchema(final String clientId) {
for (ProcessMetadata metadata1 : processMetadataList) {
if (metadata1.getClientId().equalsIgnoreCase(clientId)) {
String deviceId = metadata1.getDeviceId();
for (ProcMetadata metadata2 : procMetadataList) {
if (metadata2.getDeviceId().equalsIgnoreCase(deviceId)) {
return Optional.of(metadata2.getSchema());
}
}
}
}
return Optional.absent();
}
は私が代わりに私が持っているものの行のカップルにそれらの2つの以上のクラスを繰り返すことで必要なものを得るための任意のより良い方法はありますか?私はJava 7を使用しています。
あなたはjava7でオプションを使用していますか? – developer
はいそれはグアバからではなく、Java 8の1つです:) – john
Streamsもありますか? – njzk2