【问题标题】:Compare all values of arraylist to a string将 arraylist 的所有值与字符串进行比较
【发布时间】:2016-10-20 08:14:47
【问题描述】:

我有一个数组列表abc,它具有某些值 -

ArrayList< String > abc = new ArrayList<>();
abc.add("hi");
abc.add("hello Yash");
abc.add("i am Yash");
String x = "Yash";

现在,我想知道x 是否包含在abc 的任何元素中。
如果是,则获取包含x 的元素的索引。

【问题讨论】:

  • 您应该编写一个正则表达式并通过数组列表进行交互,然后如果匹配则返回索引。
  • 我刚刚开始使用它
  • 向我们展示您到目前为止所做的尝试
  • 它在问题中

标签: java arraylist compare


【解决方案1】:

这是一个简单的解决方案:

public class FindText
{


    public static void main(String[] args)
    {
        ArrayList< String > abc = new ArrayList<>();
        abc.add("hi");
        abc.add("hello Yash");
        abc.add("i am Yash");
        String x = "Yash";

        for(int i=0; i<abc.size(); i++)
        {
            if(abc.get(i).contains(x))
            {
                int index = i;
                System.out.println(index);
            }
        }
    }
}

它为您提供 1 和 2 作为索引,其中包括文本“Yash”

【讨论】:

    【解决方案2】:

    假设 abcList&lt;String&gt; 并且 xString 那么这应该可以解决问题。

    List<Integer> indexes = new LinkedList<Integer>();
    for(int i = 0; i < abc.size(); i++)
    {
        if(abc.get(i).contains(x))
             indexes.add(i);
    }
    

    循环结束后,包含x 的元素的所有索引都将在indexes 列表中。

    【讨论】:

      【解决方案3】:

      您可以通过 2 种不同的方式实现此目的...

      1. 老派
      2. 和 lambdas 方式

      老派示例:

      public static void main(String[] args) {
          List<String> abc = new ArrayList<>();
          abc.add("hi");
          abc.add("hello Yash");
          abc.add("i am Yash");
          String x = "Yash";
          List<String> resultOldSchool = new ArrayList<>();
          for (String sentence : abc) {
              if (sentence.contains(x)) {
                  resultOldSchool.add(sentence);
              }
          }
          System.out.println(resultOldSchool);
      }
      

      Lambda 方式示例:

      public static void main(String[] args) {
          List<String> abc = new ArrayList<>();
          abc.add("hi");
          abc.add("hello Yash");
          abc.add("i am Yash");
          String x = "Yash";
          List<String> resultJava8 = findStringInList(abc, x);
          if (!resultJava8.isEmpty()) {
              System.out.println(resultJava8);
          }
      }
      
      public static List<String> findStringInList(final List<String> list, final String strng) {
          return list.stream().filter(s -> s.contains(strng)).collect(Collectors.toList());
      }
      

      随意决定....

      【讨论】:

        猜你喜欢
        • 2015-11-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2016-07-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多