Вы можете использовать Map<Integer, String>
в качестве результата, где ключ - это индекс, а значение String
:
public static Map<Integer, String> find(String search, List<String> strings) {
Map<Integer, String> result = new HashMap<>(strings.size());
int index = 0;
for(String s : strings) {
if(s.startsWith(search)) result.put(index, s);
index++;
}
return result;
}
которое вы затем можете назвать следующим образом:
System.out.println(find("ab", names));
Выводит что-то вроде:
{0=ab, 1=ab cdf}
Другой способ - вернуть List<String>
в результате, но строки, не соответствующие строка поиска заменяется на null
:
public static List<String> find(String search, List<String> strings) {
List<String> result = new ArrayList<>(strings);
for(ListIterator<String> it = result.listIterator(); it.hasNext(); ) {
if(!it.next().startsWith(search)) it.set(null);
}
return result;
}
Что печатает:
[ab, ab cdf, null]