前提・実現したいこと
arraylistにいくつかの長方形データがarrRに格納してある。(width,height,x,y)
新たな長方形を作る際に入力したものと配列に入ってあるものを比較し、
すでに存在するならばtrue; 存在しないならばfalseを返すメソッドを作っています。
しかし実行すると以下のように==の機能が成り立つ場合と立たない場合があり
原因がわかりません。
すでにデータとして以下のものがあった場合
R0は幅:100,高さ:234,x座標:123,y座標:134
新しく入力値を幅:100,高さ:234,x座標:123,y座標:134とすると
100 = 100
234 != 234
100 != 100
となります
なおSystem.out.printlnはどのように動いているのかを調べるため書きました
該当のソースコード
boolean isRepeat(Integer width, Integer height, Integer x, Integer y){ for (int i=0;i<arrR.size() ;i++ ) { System.out.println(i+"番目"); if (width == arrR.get(i).getRWidth()) { System.out.println(width + " = " + arrR.get(i).getRWidth()); if (height == arrR.get(i).getRHeight()) { System.out.println(height + " = " + arrR.get(i).getRHeight()); if (x == arrR.get(i).getRX() ) { System.out.println(x + " = " + arrR.get(i).getRX()); if (y == arrR.get(i).getRY()) { System.out.println(y + " = " + arrR.get(i).getRY()); return true; } System.out.println(y + " != " + arrR.get(i).getRY()); } System.out.println(x + " != " + arrR.get(i).getRX()); } System.out.println(height + " != " + arrR.get(i).getRHeight()); } System.out.println(width + " != " + arrR.get(i).getRWidth()); } return false; }
public Integer getRWidth(){ return this.rWidth; } public Integer getRHeight(){ return this.rHeight; } public Integer getRX(){ return this.rX; } public Integer getRY(){ return this.rY; }
試したこと
System.out.printlnをいれてどこがおかしいのか調べたが
=が成り立っていないことがわかった。
補足情報(FW/ツールのバージョンなど)
javac 1.8.0_252
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/18 12:49
2020/05/18 12:52
2020/05/18 12:54
2020/05/18 12:58
2020/05/18 13:04
2020/05/18 13:10