-2
の配列内の空の位置を削除します。すべての値のハッシュマップが含まれていますが、私の出力は(空の位置を多く含んでしまうファイルoutput.txt
を書き込むには私は次のような方法作成したRubyの
def list_all_keys
$hash_table
keys=[]
output_file = File.open("output.txt", "w")
output_file.write("Hash Table: \n")
for i in 0..$hash_table.length - 1
current_node = $hash_table[i]
puts current_node.val
while current_node.val != -1
keys.push("key:" + current_node.key.to_s + ", value:" + current_node.val.to_s + ". pos:" + current_node.pos.to_s)
current_node = current_node.next
end
puts "Hash:" + i.to_s + ", Entries:" + keys.to_s
output_file.write("Hash:" + i.to_s + ", Entries:" + keys.to_s + "\n")
keys = []
end
output_file.close
end
end
をwhileループのため、私は思う)。出力の
例:
Hash:3964, Entries:[] /// CAN THESE BE PREVENTED? ///
Hash:3965, Entries:["key:quicker., value:1. pos:[3573]"]
Hash:3966, Entries:["key:easily, value:2. pos:[5639, 10510]"]
Hash:3967, Entries:["key:kept, value:6. pos:[1732, 1785, 3392, 5932, 7544, 9047]"]
Hash:3968, Entries:[]
Hash:3969, Entries:[]
はこれを防ぐためにいくつかの方法はありますか?
空のキーを出力しないだけですか?それでは、 'keys.emptyを除いて'を使用してください。 put /出力の後に – JLB
@JLBファイルに書き込まれたくない場合は – anonn023432
output_file.write( "ハッシュ:" + i.to_s + "、エントリ:" + keys.to_s + "\ n" )keys.emptyを除く? – JLB