显示List - Double类型的元素

时间:2017-01-15 09:55:21

标签: java

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

按钮操作:

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;
    }

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

3 个答案:

答案 0 :(得分:3)

只需遍历列表并打印值。

使用foreach循环:

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

使用功能操作:

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

答案 1 :(得分:1)

如果您想要打印出可以使用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?

答案 2 :(得分:1)

根据你的编辑,唯一的问题是:lewy,prawy被切换,所以你的循环从10变为0 - &gt;这导致一个空列表。

你有几个问题:

  • 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);
    }