我有以下课程:

public class ValueHolder {
    private String columnName;
    private int width;
    private String defaultColumnStyle;

    public String getDefaultColumnStyle() {
        return defaultColumnStyle;
    }

    public void setDefaultColumnStyle(String defaultColumnStyle) {
        this.defaultColumnStyle = defaultColumnStyle;
    }

    public String getColumnName() {
        return columnName;
    }

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public ValueHolder(String columnName, int width, String cellStyle) {
        this.columnName = columnName;
        this.width = width;
    }

    public ValueHolder(String columnName, int width, String cellStyle, String defaultColumnStyle) {
        this(columnName, width, cellStyle, defaultColumnStyle, null);
    }

    public ValueHolder(String columnName, int width, String cellStyle, String defaultColumnStyle, String dataFormat) {
        this.columnName = columnName;
        this.width = width;
        this.defaultColumnStyle = defaultColumnStyle;
    }

}


和以下

public class StaticArrayValues {

    public static ValueHolder[] TEST_VALUES = new ValueHolder[] {

            new ValueHolder("test Name", 4498, "testvalue"), new ValueHolder("Last Name", 4498, "testvalue"),
            new ValueHolder("test ID", 4498, "testvalue"), new ValueHolder("ID Value", 4498, "testvalue") };

    public static void main(String[] args) {

        String testValue= "First Name";

        // How do i check if testValue is there in  TEST_VALUES
        /*if(){

        }*/

    }

}


如何检查TEST_VALUES中是否存在“名字”?

我确定这是基本问题,但我仍然无法弄清楚:(。

有人可以帮我吗?

最佳答案

你必须遍历数组

boolean isPresent = false;
for(ValueHolder valueHolder: TEST_VALUES){
  if(valueHolder.getColumnName().equals(testValue)){
     isPresent = true;
     break;
  }
}


一些额外的想法,
如果您要执行许多操作(搜索一个特定字段中是否存在值),则可以创建一个HashMap(HashMap ),并将columnName作为键,并将ValueHolder对象作为值,与遍历整个列表时的线性时间复杂度相比,这将为您提供恒定的查找时间复杂度。

10-04 17:26