Любой альтернативный способ сочетания? - PullRequest
0 голосов
/ 17 декабря 2018

Позвольте мне объяснить вам, чего я на самом деле пытаюсь достичь.

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

типа парковки (для пожилых людей, инвалидов, мотоциклистов, грузовиков, зафрахтованных, обычных)

ив зависимости от типа парковки, мне нужно показать другой маркер на карте.

Что я пробовал: Я пытался использовать его для создания комбинации всех типов парковки, то есть 6! = 720, еслия иду с этим мне нужно сделать 720 тестовых случаев и становится слишком длинным

Ответ от firebase: ключ parking_space содержит список различных типов парковки

enter image description here

Этот метод будет вызывать получение данных из базы и итератора через все типы парковок, доступных на этой улице, и устанавливать тип true and vice versa

private ArrayList<ParkingTypePojo> parkingTypeListPojo = new ArrayList<>();

private ParkingTypePojo parkingTypePojo;
private void evaluateMarkerType(ArrayList<Map<String, Object>> pack) {
boolean elderlyStatus = false;
boolean disabledStatus = false;
boolean cyclistStatus = false;
boolean motorcyclistStatus = false;
boolean truckStatus = false;
boolean charteredStatus = false;
boolean conventionalStatus = false;
for (int i = 0; i < pack.size(); i++) {

switch (pack.get(i).get(Constants.PARKING_TYPE).toString()) {
case "Elderly"://normal green
//1
elderlyStatus = true;
break;
case "Disabled"://senior disable blue
//2
disabledStatus = true;
break;
case "Cyclist"://cycle orange
//3
cyclistStatus = true;
break;
case "Motorcyclist"://moto prpl
//4
motorcyclistStatus = true;
break;
case "Truck"://truck yllw
//5
truckStatus = false;
break;
case "Chartered"://cet black
//6
charteredStatus = true;
break;
case "Conventional"://zona blue money
//7
conventionalStatus = true;
break;
default:
break;
}

}
parkingTypePojo = new ParkingTypePojo(elderlyStatus, disabledStatus, cyclistStatus, motorcyclistStatus, truckStatus, charteredStatus, conventionalStatus);
parkingTypeListPojo.add(parkingTypePojo);
}

Iсохранен тип парковки на основе улицы в классе pojo

public class ParkingTypePojo {

    private boolean elderlyStatus;
    private boolean disabledStatus;
    private boolean cyclistStatus;
    private boolean motorcyclistStatus;
    private boolean truckStatus;
    private boolean charteredStatus;
    private boolean conventionalStatus;

    public ParkingTypePojo(boolean elderlyStatus, boolean disabledStatus, boolean cyclistStatus, boolean motorcyclistStatus, boolean truckStatus, boolean charteredStatus, boolean conventionalStatus) {
        this.elderlyStatus = elderlyStatus;
        this.disabledStatus = disabledStatus;
        this.cyclistStatus = cyclistStatus;
        this.motorcyclistStatus = motorcyclistStatus;
        this.truckStatus = truckStatus;
        this.charteredStatus = charteredStatus;
        this.conventionalStatus = conventionalStatus;
    }

    public boolean isElderlyStatus() {
        return elderlyStatus;
    }

    public boolean isDisabledStatus() {
        return disabledStatus;
    }

    public boolean isCyclistStatus() {
        return cyclistStatus;
    }

    public boolean isMotorcyclistStatus() {
        return motorcyclistStatus;
    }

    public boolean isTruckStatus() {
        return truckStatus;
    }

    public boolean isCharteredStatus() {
        return charteredStatus;
    }

    public boolean isConventionalStatus() {
        return conventionalStatus;
    }

}

Пожалуйста, предложите любой альтернативный способ решения этой проблемы, кроме комбинаций.Спасибо

...