tom*_*tom 0 java collections for-loop if-statement java-ee
在我的应用程序中,我有String类型的值列表,我正在迭代它并将每个值的值与另一个字符串进行比较,如果为true则返回true值,否则为false.
List<String> roleNames = new ArrayList<String>();
roleNames.add("AAA");
roleNames.add("MMM");
for (int i=0 ; i<roleNames.size();i++){
// if(loggedInRole.equals(roleNames.get(i))){
if("AAA".equals(roleNames.get(i))){
enableLink = "true";
}
else {
enableLink = "false";
}
}
Run Code Online (Sandbox Code Playgroud)
在我的上面的代码中,我期望结果为true,但在第二次迭代中,它将结果返回为false.如何解决这个问题?
break找到匹配项后添加语句.如果你没有突破循环,那么下一次迭代将enableLink重新开始"false"迭代"MMM".
你还应该设置enableLink到"false"启动循环之前.标准的"搜索数组"循环如下所示:
enableLink = "false";
for (int i = 0; i < roleNames.size(); i++) {
if ("AAA".equals(roleNames.get(i))) {
enableLink = "true";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
对于它的价值,你不需要一个显式的循环.你可以写:
boolean enableLink = roleNames.contains("AAA");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |