gpt4 book ai didi

java - 我正在尝试迭代数组列表,找到数组中 boolean 值为 false 的第一项,将其设置为 true 并返回它

转载 作者:行者123 更新时间:2023-12-02 03:55:42 25 4
gpt4 key购买 nike

这是我添加出租车司机的方法

public class TaxiController {

ArrayList TaxiList = new ArrayList();

public void addTaxi(String cabNumber, String driver, boolean booked){
//add a taxi to the taxi list
Taxi deltaTaxis = new Taxi(cabNumber, driver, booked);
TaxiList.add(deltaTaxis);

}

这是我的 for 循环,尝试遍历数组列表,找到第一个 false boolean 值并将其设置为 true

public void bookTaxi(){
//book a taxi
for (int i = 0; i < TaxiList.size(); i++){
if (i == false) {
(i == true);
}
return (i);
}

}


public class KwikTaxi {
//name taxi company
TaxiController delta;

public KwikTaxi(){
//add taxis to the taxi queue, set booked to false as default
addTaxis();

}

这里我在数组中添加了一些项目,并将它们默认设置为 false

public void addTaxis(){
delta = new TaxiController();

delta.addTaxi("001", "John", false);
delta.addTaxi("002", "Pete", false);
delta.addTaxi("003", "Chris", false);
delta.addTaxi("004", "Will", false);
delta.addTaxi("005", "Emma", false);
delta.addTaxi("006", "Joe", false);
delta.addTaxi("007", "Rhys", false);
delta.addTaxi("008", "Colm", false);
delta.addTaxi("009", "Steve", false);
delta.addTaxi("010", "Matthew", false);

}
}

最佳答案

您的问题是您不了解循环遍历集合的工作原理。变量i是一个用作索引的整数,因此永远不可能既不是true也不是false

一般说明:

  • 在 Java 中,约定类以大写字母开头,而变量则不然。
  • 使用集合的约定是将变量键入为接口(interface)
  • 您的 void 方法无法返回任何内容
  • 列表和其他集合应该参数化,这样您就可以知道它可以包含什么类型的对象。
  • 当变量的类型为List时,变量名称中不需要重复此信息
  • 仅仅陈述显而易见的内容的评论通常是不必要的
  • For-each 循环很好

然后,您的代码应类似于:

public class TaxiController {

List<Taxi> taxis = new ArrayList<>();

public void addTaxi(String cabNumber, String driver, boolean booked) {
taxis.add(new Taxi(cabNumber, driver, booked));
}

public void bookTaxi(){
final Taxi taxi = findAvailableTaxi();
if (taxi != null) {
taxi.book();
} else {
throw new RuntimeException("No available taxis!");
}
}

private Taxi findAvailableTaxi() {
for (final Taxi taxi : taxis) {
if (!taxi.isOccupied()) {
return taxi;
}
}
return null;
}
}

关于java - 我正在尝试迭代数组列表,找到数组中 boolean 值为 false 的第一项,将其设置为 true 并返回它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35482997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com