在java中操纵arraylist的部分

the*_*tna 1 java resize arraylist

我有以下问题.

我有一个大行和列维度的W矩阵.每行代表特征值(用双值填充).矩阵的构造如下:

  Hashmap<Integer,Arraylist<Double>> W = new Hashmap<Integer,Arraylist<Double>>();
Run Code Online (Sandbox Code Playgroud)

在进行计算时,我需要取每行的某些部分并在矩阵中更新它们.我在寻找subList方法.Arraylist但问题是它只返回列表,但我需要arraylist.因为我已经实现的许多方法都作为参数.那么这个案例的解决方案是什么呢?

 w1 = [1,3 ,4,6,9,1,34,5,21,5,2,5,1]
 w11 = [1,3,4]
 w11 = w11 +1 = [2,4,5]
 This changes w1 to = [2,4 ,5,6,9,1,34,5,21,5,2,5,1]
Run Code Online (Sandbox Code Playgroud)

ada*_*shr 5

我在Arraylist中寻找subList方法.但问题是它只返回列表但我需要arraylist

这根本不是问题.实际上,您应该List尽可能地将代码更改为使用.

A List是诸如ArrayList工具之类的具体类型的接口.以下是完全有效的:

List<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
Run Code Online (Sandbox Code Playgroud)

我建议你改变W这个:

Hashmap<Integer, List<Double>> W = new Hashmap<Integer, List<Double>>();
Run Code Online (Sandbox Code Playgroud)

  • 你总是可以做`new ArrayList(list)`或你甚至可以输入它,但我不建议这样做. (2认同)
  • @thetna:改变它是值得的,尽管许多IDE可以自动为您做出这些更改.例如,如果在Eclipse中打开`ArrayList`类,则可以使用Refactor/Use Supertype Where Possible来自动用`List`替换大多数`ArrayList`. (2认同)