以下是一个比较三个字符串数组并使用二分查找的Java代码示例:
import java.util.Arrays;
public class StringArrayComparison {
public static void main(String[] args) {
String[] array1 = {"apple", "banana", "cherry", "date", "grape"};
String[] array2 = {"banana", "cherry", "fig", "grape", "kiwi"};
String[] array3 = {"cherry", "date", "fig", "grape", "orange"};
// 将三个数组排序
Arrays.sort(array1);
Arrays.sort(array2);
Arrays.sort(array3);
// 比较两个数组并使用二分查找
for (String str : array1) {
if (binarySearch(array2, str) && binarySearch(array3, str)) {
System.out.println(str + " exists in all three arrays.");
}
}
}
// 使用二分查找确定字符串是否存在于数组中
public static boolean binarySearch(String[] array, String target) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (array[mid].equals(target)) {
return true;
}
if (array[mid].compareTo(target) < 0) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
}
在上述代码中,我们首先对三个字符串数组进行排序,然后使用二分查找算法来比较三个数组中的元素。对于数组1中的每个元素,我们使用binarySearch
方法在数组2和数组3中查找该元素。如果元素存在于数组2和数组3中,我们就打印出来。
请注意,这里假设输入的字符串数组已经被正确排序。如果输入的字符串数组没有排序,则需要在比较之前先对其进行排序。
上一篇:比较三个值的条件
下一篇:比较三列并删除整行在Excel中