объединить два разных списка один тип Wi-Fi другой тип Bluetooth - PullRequest
0 голосов
/ 07 ноября 2019

Проблема простая, но общая. я хочу создать список, который будет объединять два разных списка, один из которых имеет тип Wi-Fi, а другой - тип Bluetooth.

List<WifiModel> wifiList = [new WifiModel(), new WifiModel()]

List<Bluetooth> bluetoothList = [new BluetoothModel(), new BluetoothModel()]

List<ResultModel> result = [new WifiModel(), new BluetoothModel(), new WifiModel()]

также, как я описал вмой фрагмент кода это то, что я хочу достичь. Объединить два списка в один окончательный список результатов. Кто-нибудь может направить меня в этом. Спасибо!

1 Ответ

0 голосов
/ 07 ноября 2019

Что общего между Wi-Fi и Bluetooth и для чего вы собираетесь их использовать?

Если у них обоих есть общие функции, к которым вы хотите получить доступ, вы можете переместить их в абстрактный класс или интерфейс и создать вместо него список интерфейса.

class Scratch {

    public static void main(String[] args) {
        List<Bluetooth> bluetoothList = new ArrayList<>();
        bluetoothList.add(new Bluetooth());

        List<Wifi> wifiList = new ArrayList<>();
        wifiList.add(new Wifi());

        List<Connectable> connectables = new ArrayList<>();
        connectables.addAll(bluetoothList);
        connectables.addAll(wifiList);

        connectables.forEach(item -> item.connect());

        System.out.println("Finished");
    }

}

class Bluetooth extends Connectable {

}

class Wifi extends Connectable {

}

abstract class Connectable {

    public boolean connect(){
        System.out.println("Connected");
        return true;
    }

}

Если вы возвращаетесь к потребителю, тогда id предлагает хранить их отдельно и иметь объект, имеющий поля для обоих списков.

class SearchDeviceResults {

    List<Bluetooth> yada....
    List<Wifi> tada....

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...