二分查找是一种在已排序数组中通过不断取中间元素并与目标值比较、缩小搜索区间的查找算法。基本思路是设左、右边界 L、R,循环计算中点 M=(L+R)/2(或使用 >>> 1 防止溢出),根据 A[M] 与目标 T 的大小关系调整 L 或 R,直至找到或 L>R。文中给出 Java 实现及示例,说明普通写法在 L+R 可能导致整数溢出的问题,并提供两种改进:分半求和或位运算右移。改进后代码使用 m = (l+r) >>> 1,能够安全高效地完成二分查找。

本文介绍了在 Java 中对 List 去重的五种实现方式:① 利用 LinkedHashSet 既去除重复又保持插入顺序;② 使用 Java 8 Stream 的 distinct() 再收集为 List;③ 通过 HashSet 的唯一性特性配合临时 List 保留原序;④ 遍历时用 List 的 contains 判断,仅在结果列表中添加未出现过的元素;⑤ 采用双层 for 循环比较并删除相同元素。每种方法代码简洁,适用于不同的性能和可读性需求。