问题1,2其实可以一起讲,就是:你没完全理解==,equals和自动装箱(auto boxing)。仔细看你的comparator的实现return i<j-1:(i==j0:1);这句话,注意,你的参数是Integer类型,不是基本类型int,你对类的对象做== *** 作,是比较它们是否是同一个引用,而不是他们的值是否相等。所以,你用这个比较器做二叉搜索,结果肯定是不可预知的。当<判断失败的时候,后面的==基本不可能是true,这也是为什么if(integersget(1)==new Integer(1)){Systemoutprintln("<3>");}这句话不能打印出<3>来。你后面那个实现是正确的,因为类的对象没有< *** 作和> *** 作,所以编译器会把Integer对象自动转成int再执行比较。
问题3:api写的很清楚,当找不到的时候,会返回-(插入值)-1,在这个程序里,因为你的比较器写的不对,所以搜索失败,并且它认为插入值是1,这没有问题啊。其实,因为上面说的问题,他返回任何奇奇怪怪的数都有可能。
如果你想对两个Integer类的对象比较值,你可以调用ieqauls(j);或者iintValue()==jintValue();intValue方法返回的是Integer对象包装的基本类型的int值
另外,补充一点,不知道是你描述的不好,还是我理解的不对。你说的“根据API文档解释, Comparator只是在search之前对list进行排序。”不对,binarysearch不会排序,而是api要求你在调用binarySearch之前,必须保证传进去的list是已排序了的,你可以调用Collectionssort来实现,也可以自己写排序算法
=========================================================
comparator的作用就是比较器啊,告诉排序方法怎样比较两个值谁大谁小或相等,对于Integer,当然比较规则很直观,但是对别的类呢,比如你有一个一个Student类,你希望根据学号来排序,查找,你就需要定义自己的Comparator,当然你也可以让你的类实现Comparable接口,这样你就可以直接调用binarySearch的另外一个不需要比较器的版本
=========================================================
有点不明白,你新补充的问题是针对我哪句话讲的?你贴的API是没错啦,但理解不对。binarySearch不会排序,排序的是sort,binarySearch实现中不会调用sort,这点你自己看源代码就知道了,事实上api表达的也是这个意思(注意,原话是“在进行此调用之前”,意思是用户自己调用sort再调用binarysearch)。你知道pre-condition说法吗?列表已排序状态就是binarySearch方法成功的pre-condition(前置条件),你可以传一个乱序的list进去,没问题,编译器不会报错,但是你得不到自己想要的结果,这个你自己试就知道了。
=========================================================
汗。。你的意思难道不还是search会调用sort么?否则,如果你承认search不调用sort,那为什么还怀疑comparator会否参与搜索过程?如果search既不排序,又不使用comparator,那这个参数不就没有用了吗?
所以,search需要comparator,只用来搜索,和排序毫无关系。(你应该知道二叉搜索是怎么执行的吧,那就很清楚为什么需要一个comparator了)
要将磁通计的数据接入PLC,你需要使用专门的模块或设备来完成这项任务。以下是一般的连接方法:
1 超高限判断:将磁通计的信号经过放大和滤波处理后,连接到PLC数字输入端口。然后,在PLC程序中设置一个比较器或阈值来判断是否超过了预设的阈值。
2 超低限判断:同上,将磁通计的信号连接到PLC数字输入端口,并设置一个比较器或阈值来判断是否低于预设的阈值。
3 区间值判断:同样,将磁通计的信号连接到PLC的数字输入端口,然后在PLC程序中设置一个区间值的比较器,来判断该信号是否处于预设的区间范围内。如果信号在该范围内,则输出相应信号给PLC控制器进行处理。
需要注意的是,在连接时应仔细检查磁通计和PLC之间的接线,确保正确并可靠地连接。此外,在编写PLC程序时应根据实际需求设置恰当的条件和参数,以确保可靠性和稳定性。
以上就是关于程序员的福音 - Apache Commons IO全部的内容,包括:程序员的福音 - Apache Commons IO、300plc和触摸屏用什么变量、public static <T> int binarySearch(List< extends T> list, T key, Comparator< super T> c)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)