【问题标题】:How do i add data to arraylist by a particular index of array?如何通过数组的特定索引将数据添加到数组列表?
【发布时间】:2017-03-24 18:50:33
【问题描述】:

Click here for pic of Arraylists in an array Java

是否可以将数组列表添加到数组中?我想将数据插入到数组的特定索引中。例如,进入array[3]的arraylist。如果不可能,我该如何以另一种方式解决?我正在用java编写kmeans聚类。这是特定集群的添加元素。

【问题讨论】:

  • ArrayList 是一种已知的数据结构。但是你所说的“数组”是什么意思?一个普通的对象,还是某种复合对象?
  • 您的问题有点不清楚-您是在问是否可以将项目添加到特定索引上的数组列表中?或者您是在问是否可以将整个数组列表添加到给定索引上的另一个数组列表中?
  • 也许 arraylist 的 hashmap 可以解决问题?
  • 我想在特定索引的数组列表中添加一个项目。

标签: java arrays arraylist k-means


【解决方案1】:

首先,ArrayList 必须包含与数组长度相同数量的元素,因为一旦实例化,您就无法更改数组的长度。您可以做的是使用 ArrayList 中的项数构建一个数组。

例如:

List<Integers> list = new ArrayList<Integers>(); 
int[] arr = new int[list.size()];

然后将ArrayList的元素添加到数组中:

for (int i = 0; i < list.size(); i++) {
    arr[i] = list.get(i);
}

【讨论】:

    【解决方案2】:

    您的问题不是很清楚,但是如果您需要创建ArrayListArrayList,这意味着父ArrayList 与其他ArrayList 作为元素,您可以使用泛型类型,也称为模板。

    要声明你的父数组,你可以这样做,假设你的内部子数组将包含 int 值:

    ArrayList<ArrayList<Integer>> arrayOfarrays = new ArrayList<>();
    

    为了从内部子数组之一访问数据,您可以执行以下操作:

    int value = arrayOfarrays.get(3).get(0);
    

    该行将从索引 3 处的子数组返回索引 0 处的值。 要添加子数组,您需要使用 add 方法:

    ArrayList<Integer> childArray = new ArrayList<>();
    arrayOfarrays.add(childArray); //adds the given array at the last position
    arrayOfarrays.add(1, childArray); //adds the given array at index 1
    

    【讨论】:

    • 如果我想在数组的索引 1 处添加一个项目怎么样?
    • 那么您将不得不使用相同的提取逻辑,但使用add() 方法。
    • ArrayList childArray = new ArrayList(); arrayOfarrays.add(childArray); //在最后一个位置添加给定数组 arrayOfarrays.add(1, childArray);//在索引1处添加给定数组
    • 这是添加整个数组列表,对吧?如果我想将每个项目添加到 arrayOfarrays[1] 的 ChildArray 怎么样?
    • 是的,如果您想向其中一个子数组插入新值,您首先需要 get() 所需的数组,然后 add() 所需的项目。您可以通过执行以下操作来完成:arrayOfArrays.get(1).add(value) //在索引 1 处的子列表末尾添加给定值,您也可以使用基于索引的插入 如果您需要它甚至可以循环任何子数组: ArrayList&lt;Integer&gt; childArrayWithData = arrayOfarrays.get(1); for( ... ) //then you can loop the child array 为了更新一个值,你必须使用set()方法而不是add()
    猜你喜欢
    • 2016-05-16
    • 2020-05-02
    • 2020-05-08
    • 2014-09-05
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多