使用二分查找算法在数组查找随机生成的key对应的值
来源:互联网 发布:项目开发计划软件 编辑:程序博客网 时间:2024/05/01 11:33
在《java核心技术》的“代理”一节中的一个示例,这个代理有点难理解,主要在工作中遇到的少,反正我是没写过,所以下面的代码是从书上抄的,而且这么难懂的逻辑也是醉了。。。
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Arrays;import java.util.Random;public class ProxyTest {public static void main(String[] arge){Object[] elements = new Object[1000];//将1至1000的代理放到数组中去for(int i=0; i<elements.length; i++){Integer value = i+1;InvocationHandler handler = new TraceHandler(value);Object proxy = Proxy.newProxyInstance(null, new Class[]{Comparable.class}, handler);elements[i] = proxy;}Integer key = new Random().nextInt(elements.length)+1;//通过调用compareTo()进行二分查找int result = Arrays.binarySearch(elements, key);if(result>=0)System.out.println(elements[result]);}}class TraceHandler implements InvocationHandler{private Object target;//需要调用的对象public TraceHandler(Object t){target = t;}@Overridepublic Object invoke(Object proxy, Method m, Object[] arg2)throws Throwable {//先打印出方法名System.out.print(target);System.out.print("."+m.getName()+"(");//打印出参数if(arg2 != null){for(int i=0;i<arg2.length; i++){System.out.print(arg2[i]);if(i<arg2.length-1)System.out.print(", ");}}System.out.println(")");//开始调用return m.invoke(target, arg2);}}
0 0
- 使用二分查找算法在数组查找随机生成的key对应的值
- json递归查找key对应的值
- 二分查找key值是否在排序数组中
- 基于数组的二分查找算法
- 对于有序数组的二分查找算法
- 基于数组二分查找算法的实现
- 【C++】随机生成数组->冒泡排序->二分查找
- 数组(随机生成,三种排序,二分查找)
- php 随机生成100个100万以内的数,顺序查找,二分查找
- [数组]二分查找算法
- 数组的线性查找和二分查找
- 查找旋转数组的最小值-- 二分查找
- 按key值查找json数据中对应的值
- 利用map查找对应于key值的mapped value
- [查找算法]--二分查找的Java实现
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- Java中两种多线程实现方式的区别
- 静态变量和实例变量的区别?
- 慢跑鞋 zocm txks eett
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- UVa 202, Repeating Decimals
- 使用二分查找算法在数组查找随机生成的key对应的值
- 驾照相关:中华人民共和国公安部第123号令
- 1064. Complete Binary Search Tree (30)
- 提高代码质量:如何编写函数
- Dmaven.multiModuleProjectDirectory system property is not set
- 如何确定计算机是32位还是64位
- JAVA8 十大新特性详解
- css sprites
- java第一章