てみましたが識別子(id
)、ArrayList
に配置しないでください。HashMap
またはHashSet
を使用してください。しかし、最初に、あなたが同じ方法を(作成する必要があります)とhashCode()そのオブジェクトに:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Message message = (Message) o;
return id == message.id;
}
@Override
public int hashCode() {
return id;
}
このように、あなたはマップとセットの利点を使用することができます。だから、次の操作を行います。
User user = new User();
user.setId(1);
user.setName("stackover");
Message msg = new Message();
msg.setid(10);
msg.setmessage("hi");
msg.setUser(user);
HashMap<Integer, Message> map = new HashMap<>();
map.add(new Integer(msg.getId()), msg);
boolean isItInMapById = map.containsKey(new Integer(10));
boolean isItInMapByObject = map.containsValue(msg);
あなたがメッセージのArrayList
が必要な場合は、ちょうどこの操作を行います。
ArrayList<Message> messages = new ArrayList<>(map.values());
あなたはそれが必要な場合あなたはまた、IDのリストを取得することができます。
List<Set<Integer>> idList = Arrays.asList(map.keySet());
arrayListはどのように設定されていますか?一般的なパターンに従わない限り、リストには異なるオブジェクトを含めることはできません。 id、message、およびuserオブジェクトを保持するコンテナクラスがいくつかありますか?または、あなたはメッセージのArrayListを持っていると言っていますか? – zgc7009
これは私が私のArrayListに情報を追加する方法です\t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t http://pastebin.com/99ZhFASm – Jorge