问题很简单但很普遍。我要实现的目标是创建一个列表,该列表将合并两个不同的列表,一个是Wifi类型,另一个是蓝牙类型。
List<WifiModel> wifiList = [new WifiModel(), new WifiModel()]
List<Bluetooth> bluetoothList = [new BluetoothModel(), new BluetoothModel()]
List<ResultModel> result = [new WifiModel(), new BluetoothModel(), new WifiModel()]
正如我在代码段中所描述的,这就是我想要实现的目标。将两个列表合并为一个最终结果列表。有人可以指导我吗?谢谢!
答案 0 :(得分:0)
Wifi和蓝牙有什么共同点,您打算如何使用它们?
如果它们都具有您要访问的通用功能,则可以将其移至抽象类或接口并创建该接口的列表。
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建议将他们分开,并让一个Object包含两个列表的字段。
class SearchDeviceResults {
List<Bluetooth> yada....
List<Wifi> tada....
}