0

ArrayList成功せずに 2 を比較しようとしています。

私が持っているのはこれです:

Dim array_1 As New ArrayList()
Dim array_2 As New ArrayList()
Dim final_array As New ArrayList()

array_1array_2私は持っています:

array_1({10, 20}, {11, 25}, {12, 10})
array_2({10, 10}, {11, 20})

そして、final_array私は取得したい:

array_1(1) - array_2(1)

これを取得するには:

final_array({10, 10}, {11, 5}, {12, 10}

これを正しく行うコードを作成するにはどうすればよいですか? これが私の試みです:

For Each element In array_1
    For Each element_2 In array_2
        If element(0) = element_2(0) Then
            final_array.Add({element(0), element(1) - element_2(1)})
        Else
            final_array.Add({element(0), element(1)})
        End If
    Next
Next

このコードは、私が望むことをしません。

4

2 に答える 2

0

そのように 2 つの配列を結合しないでください。基本的に、最初の配列の各要素に対して、2 番目の配列全体を反復処理します。

したがって、疑似コード (申し訳ありませんが、私の VB スキルはひどいものです) では、次のようになります。

let end = min(array1.lenght, array2.length)
for i = 0 to end
  if array1[i].first = array2[i].first
  then final_array[i] = {array1[i].first, array1[i].second - array2[i].second}
  else final_array[i] = array1[i]

// in case array1 is bigger than array2 you need to copy its last elements
for j = i to array1.length
  final_array[j] = array1[j]
于 2013-05-09T11:23:36.697 に答える