小编iX3*_*iX3的帖子

在Java中迭代列表的方法

对于Java语言有些新意,我试图让自己熟悉一个可能遍历列表(或者可能是其他集合)以及每个集合的优点或缺点的所有方法(或者至少是非病态方法).

给定一个List<E> list对象,我知道以下循环所有元素的方法:

基本 循环(当然,还有就是相当于while/ do while循环以及)

// Not recommended (see below)!
for (int i = 0; i < list.size(); i++) {
    E element = list.get(i);
    // 1 - can call methods of element
    // 2 - can use 'i' to make index-based calls to methods of list

    // ...
}
Run Code Online (Sandbox Code Playgroud)

注意:正如@a​​marseillan指出的那样,这种形式对于迭代Lists来说是一个糟糕的选择,因为该get方法的实际实现可能不如使用时那样有效Iterator.例如,LinkedList实现必须遍历i之前的所有元素以获得第i个元素.

在上面的例子中,List实现没有办法"保存它的位置"以使未来的迭代更有效.因为ArrayList它并不重要,因为复杂性/成本get是恒定时间(O(1)),而a LinkedList是它与列表的大小(O(n))成比例.

有关内置Collections实现的计算复杂性的更多信息,请查看此问题 …

java iteration collections loops

543
推荐指数
6
解决办法
87万
查看次数

是否可以监控Safari扩展中的所有网络流量?

由于较新版本的Safari(我正在运行5.2版)似乎从"窗口"菜单中删除了"活动"查看器,我想写一个扩展来恢复此功能.但是,为了做到这一点,我认为我需要能够在该窗口/选项卡中查看请求的URL.对于Chrome,有一个"webRequest"API可以做到这一点,但我似乎无法在Safari中找到我想要做的事情.有人请告诉我这是否可能,如果是的话,我应该在哪下看?提前致谢.

到目前为止,我能够获得的最多是使用如下所示的注入启动脚本:

function trackRequests() {
    console.log(event.timeStamp + ": " + event.type, event.url, event);
}
document.addEventListener("beforeload", trackRequests, true);
Run Code Online (Sandbox Code Playgroud)

但是,这并不足以满足我需要的功能.例如,如果指定的URL没有协议,例如"//example.com/file.txt",这是处理程序所看到的; 它不知道使用了什么实际协议或是否允许请求.

似乎Apple讨论论坛上的一些人,MacDailyNewsArsTechnica都表达了希望在Safari中恢复此功能的愿望. 这是MacRumors.com另一个讨论的链接.

javascript safari-extension

12
推荐指数
1
解决办法
4736
查看次数

是否有可能java.net.URI对象的getPath方法返回null?(如果是的话,什么时候?)

根据URI javadoc,getPath方法返回"此URI的已解码路径组件,如果路径未定义则返回null "(强调添加).这会让我相信如果我的应用程序依赖于返回值getPath,我可能需要检查它是否存在null.但是,似乎永远不会发生这种情况.

下面的代码显示了我尝试构造一个返回null 的URI对象getPath,但正如您所看到的,我还没有找到这样的情况.有人可以解释一下这可能会发生什么吗?

编辑:我注意到mailtoURI没有路径.但是,我真正要问的是:是否存在使用http,https,ftp或具有未定义/空路径的文件方案的URI?

import java.net.URI;
import java.net.URISyntaxException;

public class URIGetPathNullTest {

    public static void main(String []args) throws Exception {
        test1();
        test2();
        test3();
        test4();
        test5();
        test6();
        test7();
    }


    public static void test1() throws URISyntaxException {
        String urlString = "";
        URI uri = new URI(urlString);
        printUri(uri); 
        // Output:
        //  toString() --> 
        //  getPath --> 
        //  getPath null? false         
    }

    public static …
Run Code Online (Sandbox Code Playgroud)

java null uri

11
推荐指数
1
解决办法
3069
查看次数

什么时候,像{和}(花括号)这样的字符应该在URL中进行百分比编码?

根据RFC 3986,以下字符是保留的,需要进行百分比编码才能在URI中使用,而不是作为其保留用途: :/?#[]@!$&'()*+,;=

此外,它指定了一些特别保留的字符:a-zA-Z0-9\-._~

似乎很清楚,一般应该编码保留字符(以防止误解)而不编码未保留字符(为了便于阅读),但是如何处理不属于任何类别的字符?例如{,}并没有出现在任何一个列表中,但它们是标准的ASCII字符.

期待现代浏览器的指导,似乎它们有时会有不同的行为.例如,考虑将URL粘贴https://www.google.com/search?q={到Web浏览器的地址栏中:

  • Chrome 34.0.1847.116 m不会更改它.
  • Firefox 28.0不会改变它.
  • Internet Explorer 9.0不会更改它.
  • Safari 5.1.7将其更改为 https://www.google.com/search?q=%7B

但是,如果一个粘贴https://www.google.com/#q={(删除"搜索"并将其更改?为a #,使角色成为片段/哈希而不是查询字符串),我们会发现:

  • Chrome 34.0.1847.116 m将其更改为https://www.google.com/#q=%7B(通过JavaScript)
  • Firefox 28.0不会改变它.
  • Internet Explorer 9.0不会更改它.
  • Safari 5.1.7将其更改为https://www.google.com/#q=%7B(在执行JavaScript之前)

此外,当使用JavaScript异步执行请求时(即使用此MDN示例修改为使用URL ?q={),URL不会自动进行百分比编码.(我猜这是因为XMLHttpRequest API假定事先对URL进行编码/转义.)

我想(出于与奇怪的客户要求有关的原因)使用{}在URL的文件名部分中没有(1)破坏事物,理想情况下也没有(2)在现代网络面板中创建丑陋的百分比编码条目浏览器的网络检查员/调试员.

uri rfc3986 percent-encoding

10
推荐指数
1
解决办法
3867
查看次数

TideSDK已经解散了吗?

我有兴趣使用HTML5 + webkit创建桌面应用程序,我希望能够为各种目标平台构建独立的可执行文件,例如Windows的.exe文件和Mac OS的.dmg图像.我玩过node-webkit,除了包装/分发部分外,它看起来不错.我也偶然发现了TideSDK,但该项目似乎没有用.例如,我看到的最新版本是2012年11月的测试版.然而,核心开发人员似乎转而开发TideKit.

有没有人知道TideKit是否可以替代TideSDK?TideSDK会消失吗?等等

tidesdk tidekit

9
推荐指数
3
解决办法
9840
查看次数

Handlebars 1.x和2.x API之间有什么区别?

我们目前正在使用Handlebars 1.3.0版本,我想知道我们需要更改什么,以便能够升级到2.x版本.由于HandlebarsJS团队致力于语义版本控制,我知道必须有一些重大变化,但我没有在README.md中看到它们.v2.0.0-alpha.N版本更改日志中列出了一些项目,但我不清楚这是否是完整列表(或者在2.0.0 final发布之前是否存在完整列表) .一些1.x版本也有"兼容性"部分,但我相信它们都是非破坏/向前兼容的.

任何人都可以对API差异或2.x系列的目标/改进提供一些见解吗?

兼容性说明

  • 在IE8及以下版本下运行编译器需要JSON polyfill.建议使用预编译器代替在这些传统环境中运行编译器.
  • helperMissinghelper不再具有索引名称参数.现在可以通过options.name获得帮助程序名称.
  • 预编译器输出已更改,这会破坏与早期版本的运行时和预编译输出的兼容性.
  • JavaScriptCompiler.compilerInfo 现在返回通用对象而不是javascript源.
  • AST改变
    • INTEGER - > NUMBER
    • 附加的PartialNode哈希参数
    • 新的RawBlockNode类型
  • 数据框现在具有_parent字段.这是内部的,但由于性能/兼容性原因而可以枚举.

更新:来自2014年10月16日的ember.js博客

除了上面提到的更改:

现在删除仅包含块语句和空格的行.这与Mustache规范相匹配,但可能会导致代码期望存在空格,但不会出现问题.

compatibility handlebars.js

8
推荐指数
1
解决办法
2962
查看次数

Bootstrap中响应网格的正方形

我想创建一个响应式图像网格,它总是在Bootstrap中平方.

到目前为止,我得到了这个:Jsfiddle Link

这部分强制元素始终被平方:

.frontpage_square {
    position:relative;
    overflow:hidden;
    padding-bottom:100%;
}

.frontpage_square img {
    position:absolute;
}
Run Code Online (Sandbox Code Playgroud)

左边较大的方块和右边的九个小方块是正确的,但我无法弄清楚如何在整个高度上展开右边的九个方块.所以基本上他们应该采取左,更大的正方形的整个高度.

css grid-layout twitter-bootstrap

6
推荐指数
1
解决办法
1万
查看次数

是否有用于在Java中实现基本"规则链"的标准库/ API /工具?

我正在编写一个servlet,它将根据一些用户可定义的规则有条件地修改HTTP头.(编辑:这些规则在启动时读取的XML文件中定义.)例如,如果响应标头尚不存在,则将"X-UA-Compatible:IE = edge,chrome = 1"添加到响应标头中如果请求指定了与已知模式匹配的"User-Agent"标头.没有任何更好的想法,我试图让我自己的POJO代表这些规则.它"有效"但我觉得必须有更标准或更灵活的方法来做到这一点.

是否有可以解决此问题的通用库或工具(无论是内置程序还是第三方)?我已经听过并读过一些关于"规则引擎"的内容,但它们似乎是更复杂/更重的工具,并不像我的那样简单.

为了说明我正在尝试做什么,我创建了一个简化程序,根据"条件"(例如"是偶数")将"规则"应用于数字.在这里,对不起它有点冗长.

Main.java

package my.example;

import java.util.*;

import my.example.conditions.*;
import my.example.rules.*;

public class Main {

    public static void main(String args[]) {
        // Some sample objects to evaluate
        Collection<Integer> numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8);
        print(numbers);

        // Define rules
        Collection<Rule<Integer>> rules = new ArrayList<Rule<Integer>>();
        rules.add(createRuleToMultiplyEvenNumbersBy4());
        rules.add(createRuleToAdd1ToEveryNumber());

        // Process the rules for each sample object
        Collection<Integer> newNumbers = new ArrayList<Integer>();
        for (Integer number : numbers) {
            Integer newNumber = number; …
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
1052
查看次数

基于斜率将线添加到matplotlib散点图

我有一个从DataFrame构建的散点图 - 它显示了两个变量的相关性 - 长度和年龄

import matplotlib.pyplot as plt
df = DataFrame (......)
plt.title ('Fish Length vs Age')
plt.xlabel('Length')
plt.ylabel('Age (days)')
plt.scatter(df['length'],df['age'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我想在这个散点图中添加一条给定斜率为0.88的线.我该怎么做呢?

PS所有的例子我设法找到使用点而不是斜线来画线

更新.我重读了这个理论 - 事实证明相关系数应该根据数据点绘制的事实由我组成:)部分是因为我头脑中的这个图像在此输入图像描述

但是我仍然对matplotlib的线条绘图功能感到困惑

python matplotlib pandas

3
推荐指数
2
解决办法
2万
查看次数

(jquery)阻止div在页面加载期间显示

如果您转到www.rambocats.com,当页面加载时,您会看到这个底部中心的div显示一两秒,然后消失.(Div用粉红色字母表示"画廊II").它应该只在您向下滚动到页面的大约2/3时出现.如何在初始加载期间阻止它显示?

这是jQuery:

$(document).ready(function(){
var open = false;
$('#homiesSlideButton').click(function() {
    if(open === false) {
        $('#homiesSlideContent').animate({ height:'610px' });
        $(this).css('backgroundPosition', 'bottom left');
               $("#homies-wrapper img").peTransitionHilight({   // image highlight/transitions plugin
                                        slideshow:true, 
                                        transition:"all", 
                                        duration:1500, 
                                        delay:4444, boost:0.3
                                  });
        open = true;
    } else {
        $('#homiesSlideContent').animate({ height: '0px' });
        $(this).css('backgroundPosition', 'top left');
        open = false;
    }
});
});

$("#homiesSlideButton").hide();
$(window).scroll(function(){
if($(window).scrollTop()>4444){               // position on page when button appears
     $("#homiesSlideButton").fadeIn();
  }else{
     $("#homiesSlideButton").fadeOut();
  }
});  


$(window).scroll(function(){
if($(window).scrollTop()>4444){               // position on page when button disappears
     $("#homiesSlideContent").fadeIn();
  }else{
     $("#homiesSlideContent").fadeOut();
  }
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery fouc

1
推荐指数
1
解决办法
1万
查看次数

如何确定给定`HttpClient`实例的最大并发连接数

我有一个在它启动时Servlet构建一个HttpClient实例.它与服务请求时使用的协作模块共享此客户端.我想FutureRequestExecutionService在协作模块中使用API来轻松地同时发送一些请求.这需要将HttpClient实例与实例一起使用ExecutorService.本教程建议设置ExecutorService使用与HttpClient最大并发连接数相同的线程数.

futureRequestExecutionService的构造函数接受任何现有的httpClient实例和ExecutorService实例.配置两者时,必须将最大连接数与要使用的线程数对齐.当线程多于连接时,连接可能会开始超时,因为没有可用的连接.当连接多于线程时,futureRequestExecutionService将不会使用所有连接.

我认为协作模块应该是ExecutorService为其并发请求创建的模块.在这种情况下的问题是协作模块不一定知道它应该使用多少线程,因为它不知道HttpClient已配置允许多少同时连接.

我知道我可以使用HttpClientgetConnectionManager方法,但从4.3开始,这已被弃用.那么,确定给定HttpClient允许的同时连接数量的推荐方法是什么?我怀疑错误的答案是保存对ConnectionManager用于构建的对象的引用HttpClient,并将其与协作模块一起传递或定义某种全局常量.也许我问的是错误的问题.

也许我应该代替创建HttpClient,ExecutorServiceFutureRequestExecutionService对象都在同一时间,然后只是通过 FutureRequestExecutionService实例来希望让使用共享客户端的HTTP请求的模块.我想以符合HttpClient作者意图的方式做到这一点; 在这种情况下,我只是不确定究竟是什么.

编辑:为了澄清,HttpClient实例是使用HttpClientBuilder具有PoolingHttpClientConnectionManager连接管理器集的实例创建的.然而,这并不在同一范围内创作的发生PoolingHttpClientConnectionManagerFutureRequestExecutionService.我开始怀疑它们应该一起创建,然后HttpClient使用FutureRequestExecutionService实例而不是传递实例.

java apache-httpclient-4.x

1
推荐指数
1
解决办法
6956
查看次数