草庐IT

java - 关于如何计算验证 "if"条件的元素数量的任何想法?

privatestaticintchain(intn){intcount=0;while(n>1){if(n%2==0){count++;//thevalueisnotstoredreturnchain(n/2);}count++;//samethingreturnchain(3*n+1);}returncount;//printstheinitialvalue(0)}}我需要打印链方法重复出现的次数。 最佳答案 这个怎么样:publicstaticintchain(intn){returnchain(n,0);}privatest

java - 太多的 if-else 语句,有什么方法可以重构它

这可以重构吗?或者这看起来不错。(变量名称已更改)if(cmpScope.equals(GLOBAL)){returntrue;}elseif((cmpScope.equals(X)||cmpScope.equals(Y))&&cid==pid){returntrue;}elseif(cmpScope.equals(Z)&&cid!=pId){returntrue;}elseif(cmpScope.equals(V)&&cid==pid){returntrue;}elseif(cmpScope.equals(Z)&&cid==pid&&cSubId!=pSubId){returntru

Java 流 : find if stream contains null

很可能是重复的,但是我找不到任何特定的。给出publicstaticvoidmain(String[]args){System.out.println(Arrays.asList(null,null,1).stream().filter(obj->obj==null).findAny().isPresent());}期待至少应该有效(即返回false因为findAny返回Optional)。实际NullPointerException被抛出问题这是错误还是功能?感谢您的意见和解释。 最佳答案 此行为在findAny()的Javado

Java 迭代器和 for-each-loop。有什么方法可以访问底层迭代器?

我非常喜欢Java中的for-each-loop结构(for(Te:iterable)),它适用于任何Iterable。因为在许多情况下,它使代码易于阅读和编写。我想知道是否有任何方法可以从这样的循环中访问底层迭代器。如果我想使用remove(),这可能是强制性的来自迭代器。 最佳答案 不,for-each循环的全部意义在于抽象出底层迭代器。如果需要,必须声明。 关于Java迭代器和for-each-loop。有什么方法可以访问底层迭代器?,我们在StackOverflow上找到一个类似

Java 8 - For Each 和 removeIf

我正在尝试通过结合removeIf方法在Java8中使用ForEach执行操作。但是我收到了错误。我无法在以下程序中组合forEach和removeIf:publicclassForEachIterator{publicstaticvoidmain(String[]args){Listints=newArrayList();for(inti=0;ii%2==0));System.out.println(ints);}} 最佳答案 不需要forEach,Lambda表达式将作用于集合的所有元素ints.removeIf(i->i%2=

java - `if` 条件效率

我正在致力于提高Java程序的性能。在改进了数据结构和算法的复杂性之后,我正在尝试改进实现。我想知道在条件中如何使用if语句是否真的很重要。编译器是否将这两个版本视为相同?它们的成本是否相同(如果我在if语句中有更多变量)?if(a&&b&&c&&d&&e&&f&&g)或if(a)if(b)if(c)if(d)if(e)if(f)if(g)(在这个特定的项目中,我并不真正关心可读性,我知道第二个可读性较差) 最佳答案 &&运算符(还有||)是Java中的短路运算符。这意味着如果a为false,Java不会评估b、c、d等,因为它已经

java - 重构复杂的 if 条件

任何人都可以建议避免大多数if条件的最佳方法吗?我有以下代码,如果有条件,我想避免大多数情况,该怎么做?任何解决方案都有很大的帮助;if(adjustment.adjustmentAccount.isIncrease){if(adjustment.increaseVATLine){if(adjustment.vatItem.isSalesType){entry2.setDebit(adjustment.total);entry2.setCredit(0d);}else{entry2.setCredit(adjustment.total);entry2.setDebit(0d);}}el

c# - 链式 IF 结构

想象一下这种情况,我有一个需要检查属性的对象。但是,该对象当前可以具有空值。如何在一个“if”条件下检查这两个条件?目前,我必须做这样的事情:if(myObject!=null){if(myObject.Id!=pId){myObject.Id=pId;myObject.Order=pOrder;}}我想要这样的东西:if(myObject!=null&&myObject.Id!=pId)我只想在第一个条件为真时评估第二个条件。 最佳答案 if(myObject!=null&&myObject.Id!=pId){myObject.I

Java 输入一个错误的 if 语句

我遇到了这个程序中最奇怪的错误,调试时确认了这一点。我有以下代码(当然归结为突出问题):BHFrame.javapublicclassBHFrame{privatebooleanuSS;privateStateSaverstateSaver;publicBHFrame(booleanuseInternalStateSaver){//InitcodeuSS=useInternalStateSaver;//MoreinitcodeSystem.out.println(uSS);if(uSS){System.out.println("Entered1");stateSaver=newStat

从ARM V7汇编层分析 if else和swith 语句效率

1.前言    ifelse和swithcase是两种常用的分支选择结构,从C语言的角度来看,代码是顺序执行的,很难判断两者的效率孰高孰低。可以确定的是,swith语句只能处理整形变量,而ifelse语句可以处理更复杂的条件分支。当条件变量为单一的整形值的判断时,两者是可以互相替代的,如:voidjudge_var_ifelse(intvar){ret=-1;if(0==var){ret=1;}elseif(1==var){ret=6;}elseif(2==var){ret=3;}else{ret=2;}returnret;}voidjudge_var_switch(intvar){ret=-