Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从arraylist获取特定元素_Java_Javafx - Fatal编程技术网

Java 从arraylist获取特定元素

Java 从arraylist获取特定元素,java,javafx,Java,Javafx,我有一个使用JavaFX的resturant系统,当客户订购时,该订单被添加到“customer”类中。然后将客户添加到“table”类中 最后,我试图通过循环显示每个客户订单的数组列表来显示每个客户的订单,但我搞不懂语法 名为allcustomers的arraylist的设置如下 allcustomers = tbl.getCustomers(); [Customer{customernumber=null, customerorder=[burger'7.99]}] 打印出来看起来像这样

我有一个使用JavaFX的resturant系统,当客户订购时,该订单被添加到“customer”类中。然后将客户添加到“table”类中

最后,我试图通过循环显示每个客户订单的数组列表来显示每个客户的订单,但我搞不懂语法

名为allcustomers的arraylist的设置如下

allcustomers = tbl.getCustomers();
[Customer{customernumber=null, customerorder=[burger'7.99]}]
打印出来看起来像这样

allcustomers = tbl.getCustomers();
[Customer{customernumber=null, customerorder=[burger'7.99]}]
我试图循环浏览“所有客户”列表,只获取食物,但我不确定如何获取?

这是完整的代码

public class PaymentScreenController {


    public ArrayList<Customer> allcustomers;

    public Customer cus1;
    public ArrayList cusarray;


    private Table tbl = new Table();

    @FXML
    public void initialize() {

        allcustomers = tbl.getCustomers();




        // Unsure about how to do this for loop
        for (  : allcustomers) {




        }
公共类付费屏幕控制器{
公共阵列列表所有客户;
公共客户cus1;
公共数组列表;
私有表tbl=新表();
@FXML
公共无效初始化(){
allcustomers=tbl.getCustomers();
//不确定如何为循环执行此操作
对于(:所有客户){
}

任何帮助都将不胜感激

增强循环的使用方式如下:

for (Customer customer : allCustomers) {
   //To display the customer's order or some other attribute
   System.out.println(customer.customerOrder);
}
使用索引for循环:

for (int i = 0; i < allCustomers.size(); i ++) {
  Customer customer = allCustomers.get(i);
  System.out.println(customer.customerOrder);
  //This could be turned into one line, but shows how you index in ArrayLists
}
for(int i=0;i
请参阅下面LinuxServer的评论,了解使用streams浏览列表的更酷版本

for (Customer customer : allcustomers) { // Iterate through all customers
  print("Customer Number: " + customer.customernumber); // Print Customer Number
  print("Customer Order: " + customer.customerorder.toString()); // Print the order array
}
使用法线for循环

for (int i = 0; i < allcustomers.length; i++) {
  print("Customer Number: " + allcustomers[i].customernumber); // Print Customer Number
  print("Customer Order: " + allcustomers[i].customerorder.toString()); // Print the order array
}
for(int i=0;i
以下是一些解决问题的示例

对于每个循环

for (Customer customer : allCustomers) {
      //...
 }
for (int i = 0; i < allCustomers.size(); i++) {
  Customer customer = allCustomers.get(i);
  //...
}
为循环编制索引

for (Customer customer : allCustomers) {
      //...
 }
for (int i = 0; i < allCustomers.size(); i++) {
  Customer customer = allCustomers.get(i);
  //...
}

我希望这会有所帮助。

正如我看到的,Customer在Customer对象中嵌套了订单的ArrayList。 因此,首先需要迭代allCustomers中的所有客户 然后迭代customerOrder列表中的所有订单。 Star输出用于分离来自每个客户的订单

for (Customer customer : allCustomers) {
        System.out.println("*****")
        for(String singleOrder: customer.customerOrder){
            System.out.println(singleOrder);
      }
    }
此外,您可以这样做:

for (Customer customer : allCustomers) {
        System.out.println("*****")
        System.out.println(Arrays.toString(customer.customerOrder));
    }

很好的回答…如果需要索引,那么使用标准for循环也可能有助于演示如何执行此操作。您知道如何为循环中的每个客户获取他们的食品订单吗?如果您使用
allCustomers.stream()
您可以使用
allCustomers.stream().map(customer::getOrderedFood())
来映射它。您可以使用
collect(Collectors.toList())
(返回
List
作为数据类型)顺序
findFirst()
/
findAny()
(返回
可选
)如果不在customer类中创建字段,我似乎无法访问这些字段,这些字段是不正确的,因为我已经在这些字段中创建了它们。要使用您的字段,请替换“customernumber”和“customerorder”到正确的字段。永远不要使用公共变量,将它们设为私有并作为Getter/Accessor,因为公共变量占用太多内存。对于打印数组,可以使用
数组。toString()
也是名为“allCustomers”的变量
ArrayList
它们是正确的字段customer类具有customer number和customer order属性,客户被添加到表类。“allcustomers”是通过从表类获取所有客户来分配的。那么我如何访问它们呢?您可以通过
customer.var使用公共修饰符检索变量可使用
(不推荐使用,因为公共变量占用太多内存。)或通过带有
customer.getVariable()
的getter/accessor。如果您认为自己知道如何读取列表中的值,则应再次查看答案。您应使用技术术语,并可能对其进行解释。可以使用“迭代所有客户”。但这没关系。非常感谢!修复了它,使其更精确。这个问题的答案让我回想起堆栈溢出文档。请发布您的
Customer
类(和任何相关的类;看起来
Customer
可能有一个名为
customerorder
的字段,这是您定义的其他类的列表)。没有它,任何人都无法回答这个问题;最好还是创建并发布一个。如果没有足够的详细信息,您得到的任何答案都可能或多或少是胡言乱语。