我在我的OnCreate()
中的字符串上有相同数量的2 Set<String>
,其中一个Set<String>
保存来自多个用户的消息,而另一个保存这些用户的名称。我想加入这两个Set<String>
例如。可以说有3个消息和3个用户名,我需要Set<String>
(“消息”)中的第一个字符串与Set<String>
(“名称”)中的第一个字符串,然后是Set<String>
(“消息”)中的第二个字符串与Set<String>
(“名称”)中的第二个字符串一起去。使用2个字符串集合(合并它们)
我知道如何去通过所有的Set<String>
,但我无法弄清楚如何用两个来获得我需要的结果。也许有人知道一种不同的方式?另一个例子:(3字符串名称)伊万,马克,史蒂夫(3字符串消息)嘿!,什么与你?,嗨。
我希望它加入这样的:(伊万送:嘿!)(马派:怎么了你)(史蒂夫发送:你好)
这是当我有我一直在做只有一个Set<String>
。
SharedPreferences prefMessage = getSharedPreferences(LocalDatabase.SP_NAME, MODE_PRIVATE);
Set<String> savedMessages = prefMessage.getStringSet("Message", new HashSet<String>());
// Set<String> savedNames = prefShouts.getStringSet("Names", new HashSet<String>());
if(savedMessages!=null) {
int numMsg = savedMessages.size();
int i = 0;
for (String msg : savedMessages) {
i++;
newMessage(msg); //Creates alert Dialog, only sends message, need to include name aka seng newMessage(msg , name)
if (i == numMsg) {
savedMessages.clear();
//savedNames.clear();
}
}
}
'HashSet's不排序,也不联系,所以你可能需要一个纯字符串
SharedPreference
值'LinkedHashSet'(保留插入订单)或“TreeSet”(自然排序或使用给定的“比较器”)。 – Mena'Set'不好,使用持久订单的东西,例如'List'。甚至更好,使用'JSONObject',其中每个对象持有发送者,消息等 – nafas