Разделить массив на два массива за один проход? - PullRequest
1 голос
/ 10 марта 2012

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

Возможно ли это за один проход, или я сделаю это?Обязательно придется пройти дважды: один раз, чтобы определить, насколько большими должны быть новые массивы, и снова заполнить эти массивы?Я могу видеть, как это будет работать с другим языком программирования или с другой структурой данных, но с Java это не представляется возможным.

1 Ответ

3 голосов
/ 10 марта 2012

Вы хотите использовать массивы?Или это может быть коллекция?Если так, то:

  String[] st = new String[] {"asas", "dsdsdsd", "sfdsfdsf", "dsfsdfdsfdsfs"};
  List<String> s1 = new ArrayList<String>();
  List<String> s2 = new ArrayList<String>();
  for (String s: st) {
      if (s.length>5)
          s1.add(s)
      else
          s2.add(s);
  }
...