使用2个字符串集(组合它们)

时间:2015-10-28 14:21:25

标签: java android arrays string hashset

我的Set<String>中有两个OnCreate()字符串相同的数量,一个Set<String>包含来自多个用户的消息,而另一个拥有这些用户的名称。我想加入这两个Set<String>,例如。假设有3条消息和3个用户名,我需要Set<String>内的第一个字符串(&#34;消息&#34;)与Set<String>内的第一个字符串一起使用(&#34; name&#34;),然后Set<String>内的第二个String(&#34; messages&#34;)与Set<String>内的第二个String一起使用(&#34; names&#34;)..在那种模式。

我知道如何浏览所有Set<String>,但我无法弄清楚如何用两个来完成我需要的结果。也许有人知道不同的方式?另一个例子:(3个字符串名称)Ivan,Mark,Steve(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();


           }

       }
   }

1 个答案:

答案 0 :(得分:2)

Set没有“first”的概念,因为集合是无序集合。您不能强制SharedPreferences以某种方式维护字符串集条目中的值的顺序。

您需要使用其他形式的数据存储而不是一对字符串集SharedPreference条目,例如:

  • 文件(XML,JSON等)
  • 数据库表(SQLite)
  • 具有更多结构化内容(XML,JSON等)的纯字符串SharedPreference