我遍历一个数组数组并通过关联键访问数组的值,这是一个代码片段.注意:我从不迭代整个数组,但只有10的窗口.
//extract array from a db table (not real code)
$array = $query->executeAndFetchAssociative;
$window_start = 0;
for($i = $window_start; $i<count($array) && $i<$window_start+10; $i++)
echo($entry["db_field"]);
Run Code Online (Sandbox Code Playgroud)
这是一种Web界面的分页器.我收到了windows_start值并显示了接下来的10个值.
概念执行:
内部阵列有大约40个字段.外部数组可以在显示数据库表时增长很多.现在我看到,随着外部数组越来越大,10级窗口的执行需要越来越多的时间.
我的代码需要一些"性能理论":
如果我通过数字键输入内部数组的值,我可以获得更好的性能吗?通常,使用数字索引访问数组值比使用关联索引(字符串)访问更快?
如何输入长度为N的数组的随机条目($ array [random_num])?O(N),O(N/2)就是例如
最后,迭代数组的速度取决于数组长度?我的意思是我总是迭代10个数组元素,但数组长度如何影响我的固定长度迭代?
谢谢Alberto
我有一个基于PHP,HTML和javascript的典型Web应用程序。
用户可以从HTML页面触发一个JavaScript操作,该操作与服务器进行一些Ajax交互。此javascript函数碰巧提示一些警报消息,需要用户确认。
当第二条警报运行时,浏览器(Chrome版本18.0.1025.142 m)在警报框中显示一条消息和一个复选框,用户可以在其中“阻止此页面上的其他对话框窗口”(这不是我翻译的确切文本)从我的浏览器中的意大利语输入)。
用户可以告诉浏览器阻止连续的警报,这对我的应用程序不利。
有没有一种方法可以提示更多警报,从而避免用户阻止它们的功能?
也许我应该使用警报以外的其他东西,也许是jQuery组件?如果我这样做,哪一个类似于警报?
我有这段代码:
public class ThreadInteraction {
public static void main(String[] argv) {
System.out.println("Create and start a thread t1, then going to sleep...");
Thread1 t1 = new Thread1();
t1.start();
try{
Thread.sleep(1000);
}
catch(InterruptedException e) {
System.out.println(e.toString());
}
//let's interrupt t1
System.out.println("----------- Interrupt t1");
t1.interrupt();
for(int i =0; i<100; i++)
System.out.println("Main is back");
}
}
class Thread1 extends Thread {
public void run() {
for(int i =0; i<10000; i++)
System.out.println(i + "thread1");
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎t1.interrupt()不起作用,因为在我的输出中出现所有10000 t1打印.难道我做错了什么?
好的伙伴在这里是我的简单代码,我在其中构建一个String数组并尝试搜索此数组中的字符串:
String[] arr = new String[5];
arr[0] = "ccc";
arr[1] = "aaa";
arr[2] = "bbb";
arr[3] = "eee";
arr[4] = "ddd";
System.out.println(Arrays.binarySearch(arr,"eee"));
Run Code Online (Sandbox Code Playgroud)
直接来自Java 6 binarySearch文档:"在进行此调用之前必须对数组进行排序.如果未对其进行排序,则结果未定义"!
实际上我运行我的代码几次得到输出总是3这是我的NOT SORTED数组中的eee的位置,但结果似乎没有"未定义",如文档所述.
我错过了什么?
谢谢