2016-11-09 3 views
-4

У меня есть ArrayList в java с кучей строковых элементов внутри него, я хочу иметь возможность указать одну букву и взамен получить все строки, которые начинаются с единственной буквы, которая .Поиск Java ArrayList с использованием первой буквы

Есть ли способ, который я могу назвать, который облегчает этот процесс? или мне просто нужно перебирать каждый элемент в списке массивов с индексом 0?

Я не очень много знаю о списках массивов, но задание, над которым я работаю, требует от меня использования их, я надеюсь, что кто-то может пролить свет на это для меня! :-)

Также я знаю, что здесь есть похожие вопросы, рассказывающие вам, как искать список массивов, я просто хочу знать, как это сделать, ища первую букву каждого элемента в списке массивов, чтобы увидеть если письмо соответствует букве, которую пользователь дает ей.

+0

Вы можете добавить свой код? –

+0

Что вы хотите вернуть? Другой «Список '? – bradimus

+0

Я хочу, чтобы он возвращал все слова из ArrayList, которые могут совпадать с первой буквой – RonB7

ответ

0

Насколько я знаю, нет java-метода, который, учитывая символ, будет искать ArrayList и возвращать все строки, начинающиеся с этой буквы. Я считаю, вам нужно пройти через ArrayList и для каждой строки, посмотрите, начинается ли она с персонажа, который вы ищете. Вы можете получить первый символ строки с помощью метода подстроки:

myString.substring(0,1);

1

Возможно, что-то вроде этого:

public static List<String> getPossibleStrings(List<String> strings, String query) { 
     List<String> result = new ArrayList<String>(); 
     for (String s: strings) { 
      if (s.startsWith(query)) 
      result.add(s); 
     } 

     return result; 
} 
+0

startsWith не разрешает как метод для меня, мне нужно импортировать библиотеку для этого? – RonB7

+0

@ RonB7 Нет, вам не нужна библиотека. Он является частью стандартных методов String. [String # startsWith] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith (java.lang.String)) –

0

Может использовать Java 8 streams.

List<String> myList = Arrays.asList("apple", "grape"); 
String start = "a"; 
myList.stream() 
    .filter(x -> x.startsWith(start)) 
    .forEach(System.out::println); 

Выходы apple

+0

startsWith не разрешает как метод для меня , мне нужно импортировать библиотеку для этого? – RonB7

+0

Нет, это часть стандартной библиотеки Java для класса String. Это было отлично для меня в Java 8 –

+0

@ RonB7: Может быть, вы используете Java 7, а не 8? Потоки доступны в Java 8, а не в Java 7. вы можете попробовать решение, предоставленное Bijay Gurung, которое работает на Java 7 –