code: public void pairsMatching(final LongObjectProcedure condition, final LongArrayList keyList, final ObjectArrayList valueList) {
  	keyList.clear();
  	valueList.clear();
  	
  	forEachPair(
  		new LongObjectProcedure() {
  			public boolean apply(long key, Object value) {
  				if (condition.apply(key,value)) {
  					keyList.add(key);
  					valueList.add(value);
  				}
  				return true;
  			}
  		}
  	);
  }
docs: Fills all pairs satisfying a given condition into the specified lists.
  Fills into the lists, starting at index 0.
  After this call returns the specified lists both have a new size, the number of pairs satisfying the condition.
  Iteration order is guaranteed to be <i>identical</i> to the order used by method {@link #forEachKey(LongProcedure)}.
  <p>
  <b>Example:</b>
  <br>
  <pre>
  LongObjectProcedure condition = new LongObjectProcedure() { // match even keys only
  public boolean apply(long key, Object value) { return key%2==0; }
  }
  keys = (8,7,6), values = (1,2,2) --> keyList = (6,8), valueList = (2,1)</tt>
  </pre>
  
  @param condition    the condition to be matched. Takes the current key as first and the current value as second argument.
  @param keyList the list to be filled with keys, can have any size.
  @param valueList the list to be filled with values, can have any size.