2012-06-12 2 views
1

Я пытаюсь присвоить значение HashMap двойного [] в список, но он бросает ошибку:Как назначить ArrayList HashMap <String, Double []> к списку

"The method add(Double) in the type List is not applicable for the arguments (Double[])"

ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList(); 

List<Double> empid = new ArrayList<Double>(); 
Iterator itr = arl.iterator(); 

while (itr.hasNext()) { 
    HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next(); 
    empid.add(map.get("id"))); 
} 

Как могу ли я сделать Double[] до Double.Request?

ответ

0

Что вы, кажется, смотрит эта линия:

empid.add(map.get("id"))); 

изменен следующим образом:

empid.addAll(Arrays.asList(map.get("id")))); 

Он преобразует массив Double в List из Double и addAll добавят все предметы из полученной коллекции в вашу целевую коллекцию empid.

+0

Привет, спасибо, это тоже работает, но моя основная проблема до сих пор не решена. Я отправлю ее как новый вопрос. –

0

Я думаю, что у вас есть большая проблема, чем литье. У вас есть массив Doubles, и вы в конечном итоге хотите, чтобы один Double.

Это не проблема кастинга, а проблема того, как вы манипулируете этими Doubles, чтобы дать вам один.

Возможно, то, что вы действительно хотите, - это итерация через этот массив и добавление каждого Double по очереди к списку. Но это действительно проблема требований.

+0

Спасибо за быстрый ответ Да, вы правы, я пытаюсь это сделать, потому что я использую данные этого списка для создания данных диаграммы с использованием achartengine в android, встроенная библиотека принимает тип списка. Так что я столкнулся с проблемой преобразования эти данные в список. –

0

В коде вы предоставляете, вы должны изменить

List<Double> empid = new ArrayList<Double>(); 

по

List<Double[]> empid = new ArrayList<Double[]>(); 

, чтобы он компилирует. Но я думаю, это не то, чего вы пытаетесь достичь. Это то, что вы хотите сделать? :

 ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList(); 
     List<Double> empid = new ArrayList<Double>(); 
     Iterator itr = arl.iterator(); 
     while (itr.hasNext()) { 
      HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next(); 
      empid.addAll(Arrays.asList(map.get("id"))); 
     } 
+0

Hi Yanflea Спасибо за своевременный ответ, да, я сделал это intially, , но он создает массив для каждой записи значения exisiting, я не хочу, чтобы это произошло, потому что встроенная библиотека accespts Тип списка в achartengine для android графики. –

0

Проблема заключается в том map.get("id") вернется Double[] но empid имеет тип Double.

Вы просто изменить

List<Double> empid = new ArrayList<Double>(); 

в

List<Double[]> empid = new ArrayList<Double[]>(); 
+0

Привет, Adarsh. Если я делаю это, он создает массив для каждой записи, как добавить все записи в Arraylist в Single arrayList, не создавая отдельные массивы для каждой записи. –

0

Вы пытаетесь вставить массив типа Double в списке, где элементы «один» парный.

Чтобы вставить массив в EmpId списке вы должны объявить его следующим образом:

List<Double[]> empid = new ArrayList<Double[]>(); 

Тогда при вызове добавить в этот список вы можете передать аргумент типа Double [].

+0

Если я использую выше, я хочу добавить все значения Hash в один массив, где, поскольку для каждого значения он создает массив, я хочу добавить все значения в один массив, как я могу это достичь. –

1

При преобразовании в List<Double> это единственный вариант, попробуйте следующее:

ArrayList<HashMap<String, Double[]>> arl = (ArrayList<HashMap<String, Double[]>>) pd.getArrayList(); 

List<Double> empid = new ArrayList<Double>(); 
Iterator itr = arl.iterator(); 

while (itr.hasNext()) { 
    HashMap<String, Double[]> map = (HashMap<String, Double[]>) itr.next(); 
    for (Double d : map.get("id") { 
     empid.add(d); 
    } 

} 
+0

Спасибо Это работает, но это deos, похоже, не решает мою проблему на более позднем этапе. Но все же Спасибо за решение этой проблемы. –

Смежные вопросы