【问题标题】:Display elements from List - Double type显示 List 中的元素 - Double 类型
【发布时间】:2017-05-30 07:34:49
【问题描述】:

我对列表中的显示元素有疑问。

按钮操作:

btn.setOnAction(new EventHandler<ActionEvent>() {
   @Override
   public void handle(ActionEvent event) {
      int lewy = Integer.parseInt(kresLewy.getText());
      int prawy = Integer.parseInt(kresPrawy.getText());
      licz(field.getText(),prawy,lewy);
   }
});

这是我的清单:

 static public double licz(String wiersz, int lewy, int prawy) {
        double wynik = 0.0;
        ///////Lista podawana z klawiatury z krokiem co 1
        List<Double> listaX = new ArrayList();
        for (int i = lewy; i <= prawy; i++) {
            listaX.add((double) i);
        }
        System.out.println(listaX);



        try {

            StringReader tekstReader = new StringReader(wiersz);

            wykresy.parser parser_obj
                    = new wykresy.parser(new wykresy.MyLexer(tekstReader));

            TElement result = (TElement) parser_obj.parse().value;

            wynik = result.oblicz();

            System.out.println("WYNIK:" + wiersz + " = " + wynik);

        } catch (Exception e) {
            System.out.println("Podczs obliczenia wystapil blad. (" + e.getMessage() + ")");
        } catch (Error error) {
            System.out.println("Podczs obliczenia wystapil blad. (" + error.getMessage() + ")");
        }
        //}
        return wynik;
    }

我认为问题出在“lewy”和“prawy”,因为列表是空的。我该如何解决?

【问题讨论】:

  • 请在句柄()中添加System.out.println(kresLewy.getText(), kresPrawy.getText())。我们需要更多的上下文来回答这个问题!标题也有误导,请改。
  • licz 方法必须返回一些东西
  • Lewy: 1 Prawy: 5 List: [] 这里它正在工作。方法 Licz() 返回 "wynik" 但 ListaX 只是方法 Licz() 中的元素。

标签: java


【解决方案1】:

只需遍历列表并打印值。

使用 foreach 循环:

    for(Double d: listaX){
        System.out.println(d);
    }

使用函数式操作:

    listaX.forEach((d) -> {
        System.out.println(d);
    });

【讨论】:

    【解决方案2】:

    根据您的编辑,唯一的问题是:lewy 和 prawy 已切换,因此您的循环从 10 变为 0 -> 导致列表为空。

    你有几个问题:

    • lewy, prawy 切换了
    • licz 不返回任何东西
    • wynik 未使用

      public static void main(String[] args) {
          int lewy = 0;
          int prawy = 10;
      
          licz("Text",lewy, prawy);
      }
      
      static public void licz(String wiersz, int lewy, int prawy) {
          double wynik = 0.0;
          List<Double> listaX = new ArrayList();
          for (int i = lewy; i <= prawy; i++) {
              listaX.add((double) i);
          }
          System.out.println(listaX);
      }
      

    【讨论】:

    • “根据您的编辑,唯一的问题是:lewy 和 prawy 已切换,因此您的循环从 10 变为 0 -> 导致列表为空。” --- 真正的天哪 -.- :D 它是工作......
    【解决方案3】:

    如果你想打印一些东西,你可以使用System.out.println(listaX),它将对象打印到控制台。

    public static void main(String[] args) {
        int lewy = 0;
        int prawy = 10;
    
        List<Double> listaX = new ArrayList();
        for (int i = lewy; i <= prawy; i++) {
            listaX.add((double) i);
        }
        System.out.println(listaX);
    }
    

    看到这个帖子:How to print out all the elements of a List in Java?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2021-02-23
      • 1970-01-01
      • 2021-10-11
      • 2021-08-22
      • 1970-01-01
      相关资源
      最近更新 更多