- PR -

二つのListを比較

投稿者投稿内容
ume
会議室デビュー日: 2006/09/26
投稿数: 5
投稿日時: 2006-10-01 21:51
皆様、よろしくお願い致します。

二つのListを比較するプログラムを考えています。
下記のようにサイズの違うListの中のpriceを元に比較したいのですが、
Iteratorやfor文を使ったところ、ループするようになってしまいました。

[[price=8,volume=2], [price=7,volume=2], [price=6,volume=1],[price=5,volume=6]]
[[price=4,volume=1], [price=5,volume=2], [price=6,volume=3]]

ループせずに、二つのリストから一つずつ取り出して比較する方法を教えてください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-01 22:23
引用:

umeさんの書き込み (2006-10-01 21:51) より:

Iteratorやfor文を使ったところ、ループするようになってしまいました。
ループせずに、二つのリストから一つずつ取り出して比較する方法を教えてください。


ループしようともループしなくとも、1 つずつ取り出して比較することには変わりないと思いますが...

それと、"なってしまいました" の意味合いが良くわからないです。
for もイテレータも、繰り返しのフローを実現するためのものですよね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2006-10-01 23:39
引用:

umeさんの書き込み (2006-10-01 21:51) より:

下記のようにサイズの違うListの中のpriceを元に比較したいのですが、
Iteratorやfor文を使ったところ、ループするようになってしまいました。


ご自身のプログラムをよく読んで、
ループのどこで、Listのどの要素を比較しているのか、
それをはっきりさせましょう。
それができれば、問題を解決するのは難しくないでしょう。
Console
ベテラン
会議室デビュー日: 2005/09/10
投稿数: 65
お住まい・勤務地: 石川県金沢市
投稿日時: 2006-10-02 02:21
引用:

ご自身のプログラムをよく読んで、
ループのどこで、Listのどの要素を比較しているのか、
それをはっきりさせましょう。
それができれば、問題を解決するのは難しくないでしょう。



最近、デバッグ能力が欠如している人が増殖している気がしますが、
如何でしょう?

[ メッセージ編集済み 編集者: Console 編集日時 2006-10-02 02:23 ]
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-02 07:27
for文使えばループするに決まってるんだが

マージソートのアルゴリズムでも使ったら?

[ メッセージ編集済み 編集者: ぷさいくろう 編集日時 2006-10-02 08:06 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-10-02 09:54
引用:

Consoleさんの書き込み (2006-10-02 02:21) より:

最近、デバッグ能力が欠如している人が増殖している気がしますが、
如何でしょう?


デバッグをしてないんだろうな、と思うような投稿が目につく、とは思います。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-02 09:55
どんな比較をしたいのかもどんなコードを書いたのかも提示されていませんが…
どんな状況なのかを分かろうとする労力が惜しいので結論だけ。

同じインデックスの要素同士を比較したい場合
コード:
List a;
List b;
int length = a.size();
if (b.size() > length) {
    length = b.size();
}
for (int i=0; i<length; i++) {
    Object aObject = a.get(i);
    Object bObject = b.get(i);
    // ここで比較処理
}



すべての要素間で比較をしたい場合
コード:
List a;
List b;
for (int aIndex=0; aIndex<a.size(); aIndex++) {
    Object aObject = a.get(aIndex);
    for (int bIndex=0; bIndex<b.size(); bIndex++) {
        Object bObject = b.get(bIndex);
        // aObjectとbObjectを比較して何か行う
    }
}



プログラムは書いたとおりに動きます。
自分の書いたプログラムがそう動くなら、
自分でそのように書いたということです。
ステップ実行して動きを追いかけるとそこで
何が起きていたのかわかるかもしれませんね。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-02 09:59
引用:

Edossonさんの書き込み (2006-10-02 09:54) より:
デバッグをしてないんだろうな、と思うような投稿が目につく、とは思います。


わかる気がする

デバッグも手順書を用意してマニュアル化しておくと
重宝がられるのかもしれませんが…
ロジカルシンキングをして自己解決できるような
方向へ誘導するようにうまくテキストを書けばあるいは…

スキルアップ/キャリアアップ(JOB@IT)