質問編集履歴
2
HashMapについて試行しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -60,6 +60,47 @@
|
|
60
60
|
|
61
61
|
```
|
62
62
|
|
63
|
+
※1/26追記
|
64
|
+
HashMapを使う方法を試行してみました。
|
65
|
+
今度は削除分はうまく動作しましたが、「変更なし」分が取れていないみたいです。
|
66
|
+
キーが一致したifに入った場合、更にif文でValue値のチェックを行っており、そこでcontainsValueがtrueになればキーもValue値も一致することになるので、「変更なし」に追加すると記述したつもりです。
|
67
|
+
ご指摘あればよろしくお願いします。
|
68
|
+
|
69
|
+
|
70
|
+
```Java
|
71
|
+
// 今期マスタをHashMapに詰める
|
72
|
+
Map<String, EmpPostBean> Thismap = new HashMap<String, EmpPostBean>();
|
73
|
+
for (EmpPostBean This : empPostList) {
|
74
|
+
|
75
|
+
// キーと値をセット
|
76
|
+
Thismap.put(This.getDscId(),This);
|
77
|
+
}
|
78
|
+
|
79
|
+
// 前期従業員マスタの要素がHashMapに含まれていれば変更なしリストに追加する
|
80
|
+
for (EmpPostBean This : empLastPostList) {
|
81
|
+
|
82
|
+
// キーが一致
|
83
|
+
if(Thismap.containsKey(This.getDscId())) {
|
84
|
+
// 役職コードが一致
|
85
|
+
if(Thismap.containsValue(This.getPostCode())){
|
86
|
+
//変更なしリストに追加
|
87
|
+
noChange.add(This);
|
88
|
+
System.out.println("変更なしの行数:" + noChange.size());
|
89
|
+
|
90
|
+
// 役職コードが不一致
|
91
|
+
}else{
|
92
|
+
// 変更ありリストに追加
|
93
|
+
Change.add(This);
|
94
|
+
System.out.println("変更ありの行数:" + Change.size());
|
95
|
+
}
|
96
|
+
}else{
|
97
|
+
|
98
|
+
Del.add(This);
|
99
|
+
System.out.println("削除の行数:" + Del.size());
|
100
|
+
}
|
101
|
+
}
|
102
|
+
```
|
103
|
+
|
63
104
|
###試したこと
|
64
105
|
・比較を行う際、equalsでなく「==」で試してみる
|
65
106
|
・HashMapを使って比較してみる
|
1
発生している問題・エラーメッセージについて追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,10 +11,13 @@
|
|
11
11
|
###発生している問題・エラーメッセージ
|
12
12
|
思いつく方法で比較をしてみましたが、
|
13
13
|
全行変更なしとして抽出されてしまいます。
|
14
|
-
Excelから生成したListに問題はなさそうなので、比較方法が悪いのだと思います。
|
15
|
-
for文のbreakが悪いのか、ループが回りすぎているような状態です。
|
16
|
-
初心者で解決方法を模索中ですが、ご教授いただけると助かります。
|
17
14
|
|
15
|
+
※1/26追記
|
16
|
+
Excelから生成したListに問題があったようで、現在試すと
|
17
|
+
仰る通りほとんど「削除」に入っていく状態です。
|
18
|
+
「削除」部分のelse ifを削ると「変更なし」と「変更あり」については期待通りの動作をしています。
|
19
|
+
「削除」(下期マスタにあって上期マスタにない行)の抽出方法を模索しているところです。
|
20
|
+
elseで対応してみたりしましたが、どうにもうまくいかない状況です。。
|
18
21
|
|
19
22
|
###該当のソースコード
|
20
23
|
```Java
|