List<String> (@NotNull String key) { List<String> nextProperties = null; if (myKeyIndices.containsKey(key)) { final IntList indices = myKeyIndices.get(key); for (int i = 0; i < indices.size(); i++) { final int searchIdx = indices.getInt(i) + 1; if (searchIdx < myKeys.size()) { final String nextProperty = myKeys.get(searchIdx); if (nextProperty != null) { if (nextProperties == null) { nextProperties = new SmartList<>(); } nextProperties.add(nextProperty); } } } } return nextProperties == null ? Collections.emptyList() : nextProperties; }