Вы можете сделать:
\bjack\b.*\bjames\b|\bjames\b.*\bjack\b
Есть много вещей, которые необходимо оценить и исправить в коде.
Во-первых, zipCode
, cityName
и l
недоступны вне их функции. zipCode
и cityName
должны быть свойствами класса. Но это все еще не то, что вы хотите.
Если я вас правильно понял, вы хотите обработать ArrayList of Cities, у каждого города есть ZipCode и CityName. Вы должны сначала понять, как определить ваши классы. Итак, мы только что выяснили класс с именем City, который имеет два свойства, давайте определим его:
public class City {
private int zipCode;
private String cityName;
public City(int zipCode, String cityName) {
this.zipCode=zipCode;
this.cityName=cityName;
}
public int getZipCode() {
return zipCode;
}
public String getCityName() {
return cityName;
}
}
Теперь вам нужен класс (возможно, основной класс), который будет содержать ArrayList из Cities (ArrayList<City>
) Обратите внимание, что каждый элемент в этом массиве является переменной типа City - поэтому он содержит как zipCode
, так и cityName
, Теперь, когда вы сортируете этот массив (по zipCode) - весь элемент (Города) будут отсортированы:
public static void main(String[] args){
ArrayList<City> cities = new ArrayList<City>();
cities.add(new City(999,"NINE"));
cities.add(new City(123,"COOL"));
cities.add(new City(456,"FUN"));
for(int i=0;i<cities.size();i++) {
System.out.println(cities.get(i).getZipCode() + cities.get(i).getCityName());
}
Collections.sort(cities, (c1,c2) -> c1.getZipCode()-c2.getZipCode());
System.out.println();
for(int i=0;i<cities.size();i++) {
System.out.println(cities.get(i).getZipCode() + cities.get(i).getCityName());
}
}
результат:
999NINE
123COOL
456FUN
123COOL
456FUN
999NINE
Как работает сортировка?
Collections.sort(cities, (c1,c2) -> c1.getZipCode()-c2.getZipCode());
Функция сортировки коллекций получает ArrayList как первый аргумент и компаратор (функция, которая объясняет КАК сравнивать элементы) в качестве второго аргумента.
Ну, города - это ваш ArrayList (список городов), а компаратор - это функция, которая получает два города (с1 и с2) и возвращает вычитание обоих почтовых индексов (в результате 0 означает, что они равны, в результате получаются отрицательные значения этот почтовый индекс c2 больше, и в результате возможный означает, что почтовый индекс c1 больше).
Ключевые выводы:
Надеюсь, это помогло:)