下面列出了com.google.common.collect.Iterators#tryFind ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
public void find_element_in_array_java_with_guava() {
Integer[] vikQueensLosingSeasons = { 1962, 1967, 1984, 2011, 1966,
1963, 1982, 2001, 1990, 2002, 2006, 2010, 1965, 1972, 1979,
1981, 1985 };
Optional<Integer> contains = Iterators.tryFind(
Iterators.forArray(vikQueensLosingSeasons),
new Predicate<Integer>() {
public boolean apply(Integer input) {
if (input == 1962) {
return true;
} else {
return false;
}
}
});
assertTrue(contains.isPresent());
assertEquals(new Integer(1962), contains.get());
}
private BatchPreparedStatementUnit getPreparedBatchStatement(final SQLExecutionUnit sqlExecutionUnit) throws SQLException {
Optional<BatchPreparedStatementUnit> preparedBatchStatement = Iterators.tryFind(batchStatementUnits.iterator(), new Predicate<BatchPreparedStatementUnit>() {
@Override
public boolean apply(final BatchPreparedStatementUnit input) {
return Objects.equals(input.getSqlExecutionUnit(), sqlExecutionUnit);
}
});
if (preparedBatchStatement.isPresent()) {
return preparedBatchStatement.get();
}
BatchPreparedStatementUnit result = new BatchPreparedStatementUnit(sqlExecutionUnit, generatePreparedStatement(sqlExecutionUnit));
batchStatementUnits.add(result);
return result;
}
private Optional<TaskContext> findTask(final TaskContext taskContext) {
return Iterators.tryFind(getRunningTasks(taskContext.getMetaInfo().getJobName()).iterator(), new Predicate<TaskContext>() {
@Override
public boolean apply(final TaskContext input) {
return input.equals(taskContext);
}
});
}
/**
* assert iterator of Schema contains URI items ending with in order.
* @param iterator Iterator of Schema
* @param items List of String
*/
public void assertContainsItemsEndingWithInOrder(Iterator<Schema> iterator, List<String> items) {
for ( String item : items ) {
Optional<Schema> tryFind = Iterators.tryFind( iterator, new SchemaUriEndsWithPredicate(item) );
Assert.assertTrue(tryFind.isPresent());
}
}