我有以下课程:
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对象作为值,与遍历整个列表时的线性时间复杂度相比,这将为您提供恒定的查找时间复杂度。