如何在java中的特定矩阵索引中存储模式?

时间:2014-08-06 13:12:00

标签: java design-patterns matrix arraylist data-mining

我有一段伪代码,我无法将其正确转换为Java代码,我的第一个问题是我使用的数据结构。我必须使用可以处理大型数据集的数据结构,并且必须是可扩展的。我将展示这部分伪代码并提出问题:

 Create a matrix of pattern lists ptList |A] x |A|
 For i = |sk| - maxError to |sk| -1 
 For j = i +1 to |sk|
 Construct new pattern p = {sk [i], sk [j]}

 If p NOT in ptList [sk [j], sk [j]] then     
     then Add p to ptList [sk [j], sk [j]]
 Add (k,i,j) to ptList [sk [j], sk [j]].getLocationList (p)

首先我必须创建一个矩阵并搜索模式,然后在找到模式后我必须将模式添加到[j] [j]位置,例如必须将模式(3,28)添加到location [28] [28]等等。但是当我这样做时,java给了我IndexOutOfBoundException然后我必须在同一个位置存储一个三元组。这可能吗?我使用了ArrayList和List,但我无法完成这项工作。 最后一个问题,任何人都可以解释伪代码最后一行的含义是什么?如何为同一模式和相同位置生成位置列表。

1 个答案:

答案 0 :(得分:0)

我不确定您需要存储哪种数据类型,假设您的模式具有类Something

int sizeofA = -1; // Insert size of |A|
List<List<Something>> matrix = new ArrayList<>(sizeofA);
for(int i = 0; i < sizeofA; ++i)
    matrix.add(new ArrayList<Something>(sizeofA));

// Insert at position i, j
matrix.get(i).get(j).add(value);

它并不总是效率最高的,但它也不是太糟糕,而且很简单。