【问题标题】:Best way to check array elements contain specific value检查数组元素是否包含特定值的最佳方法
【发布时间】:2016-07-02 14:00:20
【问题描述】:

我有一个对象列表,如果它包含特定值,则必须搜索该列表。具体值都保存在一个数组中。我应该在下面的代码中为allValuesFromArray 设置什么,以便它能够相应地运行?

List<ownClass> objectList;
String[] specificValueArray = {"value0","value1","value2","value3"};
for (ownClass object:objectlist){
    if (object.getSomeValue() == allValuesFromArray){
            //some code
        }
    }

【问题讨论】:

  • 如果您的列表已排序,那么您可以使用Collections.binarySearch

标签: java arrays list arraylist contains


【解决方案1】:

你试过了吗:

if (!objectList.retainAll(Arrays.asList(specificValueArray)).isEmpty()) {
    //some code
}

这有点掩盖了复杂性,因为这是 O(n^2),但它是干净且可读的。

【讨论】:

    【解决方案2】:

    IIUC,你可以使用:

    if (Arrays.asList(specificValueArray).contains(object.getSomeValue())){
        ...
    }
    

    如果object.getSomeValue()specificValueArray 内,这将返回true(记住
    import java.util.Arrays;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 2016-02-04
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      相关资源
      最近更新 更多