工作的ArrayList我使用以下代碼:。載()操作者與對象不
final UnassignedSubjectData selsub = (UnassignedSubjectData) spinSelectSubject
.getSelectedItem();
ArrayList<UnassignedSubjectData> selectedSubjectList = null;
if (selsubdata != null) {
selectedSubjectList = new ArrayList<UnassignedSubjectData>(
Arrays.asList(selsubdata));
Log.d(LOGTAG, "Check " + selsub.toString());
Log.d(LOGTAG, "Check " + selectedSubjectList.toString());
Log.d(LOGTAG, "Result for if "
+ Arrays.asList(selsubdata).contains(Arrays.asList(selsub)));
if (selectedSubjectList.contains(Arrays.asList(selsub))) {
CustomToast.showCustomToast(this,
"Subject already present in list");
Log.d(LOGTAG,
"IN IF after TOAST " + selectedSubjectList.toString());
return;
}
else
Log.d(LOGTAG, "Showing subject not in list");
}
的selsub
是UnassignedSubjectData
一個對象。
我得到的logcat中的條件進行下列操作之一:
Check History
Check [History, Science, Science, History]
Result for if false
Showing subject not in list
這意味着,即使對象是存在於ArrayList
的.contains()
操作無法正常工作。 請幫我找到一個解決方案。
你爲''UnassignedSubjectData'類實現了'equals'和'hashCode'嗎?你爲什麼要在另一個列表中放入一個元素的列表? – NilsH
@NilsH我把一個元素放在其他列表中,只是因爲帶有一個元素的.contains()沒有工作......但是嘗試這個也沒有工作 – 7bluephoenix
可能是因爲你沒有實現'equals'和'hashCode'。 – NilsH