问题描述
packagecom.test;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclasshelloworld{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubint[]arry={3,4,5};Listlist=newArrayList();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);Listli=newArrayList();Iterator<Integer>iter=list.iterator();while(iter.hasNext()){intid=iter.next();beanbean=newbean();booleanfind=false;for(inti=0;i<arry.length;i++){if(arry[i]==id){bean.setSysid(id);System.out.print(id+"if"+"..");}elseif(bean.getSysid()!=id){bean.setSysid(id);System.out.print(id+"elseif"+"..");}}}}}输出结果为1elseif..2elseif..3if..4elseif..4if..5elseif..5if..此程序问题就是比较4和5时在if语句中执行了一次elseif中也给执行了一次请高人给个方法能约束让符合条件下只执行一次
解决方案
解决方案二:
LZ的具体功能是要匹配数组中的内容吗?写的有些复杂,效率也不高....
解决方案三:
用二分法查找java.util.Arryas.binarySearch
解决方案四:
你要输出1elseif..2elseif..3if..4elseif..5elseif..这个结果的话很简单for(inti=0;i<arry.length;i++){if(arry[i]==id){System.out.print(id+"if"+"..");break;}else{System.out.print(id+"elseif"+"..");break;}}
解决方案五:
引用2楼ticmy的回复:
用二分法查找java.util.Arryas.binarySearch
.