如何在java中使用某些特定索引将值存储到arraylist中

时间:2015-11-15 06:03:48

标签: java list arraylist collections

我有值列表,例如

  

0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.10,0.11,0.12

我希望将其存储到具有特定索引的ArrayList

  

0.1,0.2,0.3,==指数1

     

0.4,0.5,0.6,==指数2

     

0.7,0.8,0.9,==指数3

     

0.10,0.11,0.12,==指数4

谢谢

4 个答案:

答案 0 :(得分:0)

ArrayList[][] array = {{0.1,0.2,0.3},{0.4,0.5,0.6},{0.7,0.8,0.9},{0.10,0.11,0.12}}

这是一个多维数组

设置值:

array[0][0] = 0.1;
array[0][1] = 0.2;
array[1][0] = 0.4;
array[1][1] = 0.5;

... ECT

另见How to create a Multidimensional ArrayList in Java?

答案 1 :(得分:0)

您可以根据需要使用数组List和HaspMap

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Test {

    public static void main(String[] args) {
        ArrayList<Double> list  = new ArrayList<Double>();  
        Map<String, ArrayList<Double>> map = new HashMap<String, ArrayList<Double>>();

        list.add(0.1);
        list.add(0.2);

        map.put("key", list);

        System.out.println(map.get("key").get(0));
    }   
}

答案 2 :(得分:0)

ArrayList<Double>中,单个索引可以包含单个值。

如果您想存储多个值,请尝试使用ArrayList<ArrayList<Double>>

如果您想将其存储在索引中,请使用.set(index, value)

ArrayList<Double> list = new ArrayList<>();

list.add(0.1);
list.add(0.2);
list.add(0.3);

ArrayList<ArrayList<Double>> mainList = new ArrayList();

mainList.set(0, list);

从列表中我看到3个值列表。

double []values = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12};

ArrayList<ArrayList<Double>> mainList = new ArrayList();
int k = 0;
for(int i = 0; i < values.length; i += 3)
{
  ArrayList<Double> list = new ArrayList();
  list.add(values[i]);
  list.add(values[i + 1]);
  list.add(values[i + 2]);

  mainList.set(k ++, list);
}

答案 3 :(得分:0)

在arrayList中,您无法在同一个索引中保留多个值,它只是不会那样工作。

根据您的要求,我认为您可以通过两种方式设计数据结构 -

<强> 1。地图

Map<Integer, List<Double>>

将地图保持索引作为关键字,将项目列表作为值。 因此,keep(1,[0.1,0.2,0.3])表示1个索引作为键,相应的列表表示值

<强> 2。用户定义对象列表

class IndexValue {
  int index;
  double value;
  IndexValue(int index, double value) {
     this.index = index;
     this.value = value;
  }
}

List<IndexValue> indexValueList = new ArrayList<>();
indexValueList.add(new IndexValue(1, .1));
indexValueList.add(new IndexValue(1, .2));
indexValueList.add(new IndexValue(1, .3));