Преобразование TreeMap в два массива, проблема приведения - PullRequest
1 голос
/ 19 апреля 2020

Мне нужно преобразовать TreeMap в два массива. У меня проблема с кастингом. Это говорит Inconvertible types. Cannot cast java.lan.Double to float. Код:

ArrayList<Float> yData = new ArrayList<>();
        ArrayList<String> xData = new ArrayList<>();

            for (Map.Entry<String, Double> entry : map.entrySet()) {
                xData.add(entry.getKey()) ;
                yData.add(entry.getValue());  <---------- error
        }

Я пытался сначала получить двойные значения, а затем приводить их к типу float, но у меня та же проблема:

ArrayList<Double> temp = new ArrayList<>();
        ArrayList<Float> yData = new ArrayList<>();
        ArrayList<String> xData = new ArrayList<>();


            for (Map.Entry<String, Double> entry : map.entrySet()) {
                xData.add(entry.getKey()) ;
                temp.add(entry.getValue());
        }

        for (int i = 0; i < temp.size(); i++) {
            yData.add((float) temp.get(i));    <---------- error
        }

Я также использовал обычные массивы, но эффект был то же самое.

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Чтобы преобразовать Double, вы должны использовать floatValue():

for (int i = 0; i < temp.size(); i++) {
    yData.add(temp.get(i).floatValue());
}
0 голосов
/ 19 апреля 2020

`Вы можете использовать метод floatvalue

 for (int i = 0; i < temp.size(); i++) {
            yData.add((temp.get(i).floatValue());   
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...