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

标签 java android arrays string hashset

我有 2 Set<String>在我的 OnCreate() 中的字符串上具有相同的数量, 一 Set<String>保存来自多个用户的消息,而另一个保存这些用户的名称。我想加入那两个Set<String>例如。假设有 3 条消息和 3 个用户名,我需要 Set<String> 中的第一个字符串("messages") 与 Set<String> 中的第一个字符串一起使用(“names”),然后是 Set<String> 内的第二个字符串(“messages”) 与 Set<String> 内的第二个字符串一起使用(“名字”)..以这种模式。

我知道如何浏览所有 Set<String> ,但我不知道如何用两个来获得我需要的结果。也许有人知道不同的方式?另一个例子:(3 个字符串名称)Ivan、Mark、Steve(3 个字符串消息)嘿!,你怎么了?,嗨。

我希望它像这样加入:(Ivan 发送:嘿!)(Mark 发送:你怎么了?)(Steve 发送:嗨。)

这就是我在只有一个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();


           }

       }
   }

最佳答案

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

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

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

关于java - 使用 2 个字符串集(组合它们),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33393605/

相关文章:

arrays - 如何使用关联数组并与索引数组匹配?

java - com.sun.mail.smtp.SMTPSendFailedException : 553 Sorry, 您的信封发件人在我的死信列表中

java - 如何从Java中的asynctask访问外部类中的公共(public)变量?

javax.el.PropertyNotFoundException : Property 'jobId' not found

java - Python 中的 Tensorflow Java Api `toGraphDef` 等价物是什么?

arrays - 字符串数组相等性的 Swift 字典

java - Fragment 中的 ListView 不显示任何内容

android - 将 Mat 对象从 android java 传递到 native cpp 部分

android - 如何在 LG 智能电视上安装 Android 应用程序?

arrays - 如何以蜗牛模式单次循环遍历二维数组?