Java的集合笔试题

这篇博客包含了多个Java集合和数据库操作相关的面试题目,包括集合操作符的使用、Oracle游标的更新删除、JDK1.5的for循环语法、二分搜索算法的编程实现、线程间数据同步的队列操作、链表特性、排序算法的实现以及TreeSet和ArrayList的特定操作。通过这些题目,深入理解Java集合框架和数据库操作的基础知识。
摘要由CSDN通过智能技术生成

1、下列哪个集合操作符返回两个查询所选择的所有的行。(选择 1 项) B
A Union
B Union all
C Union only
D connect by
Union 集合操作符返回两个查询所选择的去除重复行。
2在 Oracle 中,当需要使用显式游标更新或删除游标中的行时,UPDATE 或 DELETE 语句必须使用()子句。 解答:C
A.WHERE CURRENT OF
B.WHERE CURSOR OF
C.FOR UPDATE
D.FOR CURSOR OF
为了对正在处理(查询)的行不被另外的用户改动,ORACLE 提供一个 FOR UPDATE 子句来对所选择的行进行锁住。该需求迫使 ORACLE 锁定游标结果集合的行,可以防止其他事务处理更新或删除相同的行,直到您的事务处理提交或回退为止。如果使用 FOR UPDATE 声明游标,则可在 DELETE 和 UPDATE 语句中使用 WHERE CURRENT OF cursor_name子句,修改或删除游标结果集合当前行对应的数据库表中的数据行。
3、JDK1.5 中支持的 for 循环的语法
解答:for(type element : array) {
System.out.println(element)
}
type 集合(不仅仅指 Collection,也包含普通的数组)中元素的数据类型
element 遍历到的元素
array 集合对象本身(当然不只是 Collection)
4、1.编程实现:二分搜索算法

public class SearchTest {
   
被搜索数据的大小 
private static final int size = 5000000;
public static void main(String[] args) {
   
long[] data = new long[size];
// 添加测试数据
for (int k = 0; k < data.length; k++) {
   
data[k] = k;
}
// 要查找的数据
long target = 4970002;
binaryFindTest(data, target);
}
* 二分搜索算法实现
*
* @param data
* 数据集合
* @param target
* 搜索的数据
* @return 返回找到的数据的位置,返回-1 表示没有找到。
*/
public static int binaryFind(long[] data, long target) {
   
int start = 0;
int end = data.length - 1;
 while (start <= end) {
   
int middleIndex = (start + end) / 2;
if (target == data[middleIndex]) {
   
return middleIndex;
}
if (target >= data[middleIndex]) {
   
start = middleIndex + 1;
} else {
   
end = middleIndex - 1;
}
}
return -1;
}
/**
* 二分搜索测试
*
* @param data
* 数据集合
* @param target
* 搜索的数据
*/
public static void binaryFindTest(long[] data, long target) {
   
long start = System.nanoTime();
int result = binaryFind(data, target);
long end = System.nanoTime();
System.out.println("binary search position:" + result);
System.out.println("binary search t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值