为了进行一些统计分析,我需要在Excel工作表的列中提取值.我一直在使用Apache POI包来读取Excel文件,当需要迭代行时,它可以正常工作.但是,我无法找到任何关于在API(链接文本)和谷歌搜索中获取列的信息.
因为我需要获取不同列的最大值和最小值并使用这些值生成随机数,所以不需要拾取单个列,唯一的另一个选择是迭代行和列以获取值并逐个比较,这不是听起来非常节省时间.
关于如何解决这个问题的任何想法?
谢谢,
语言是Java.%1$#...... 的意思是什么
static String padright (String str, int num) {
return String.format("%1$#" + num + "str", str);
}
Run Code Online (Sandbox Code Playgroud)
在Java API中,String.format()以这种方式使用:
public static String format(String format, Object... args)
Run Code Online (Sandbox Code Playgroud)
所以我认为%1$#是格式说明符.
%[flags][width][.precision][argsize]typechar 是模板.
是对的吗?
我正在开发一个项目,要求我可视化一个相当复杂的数据类型(参见这个较旧的问题).简而言之,我有大量数据可以导出为JSON,CSV或其他任意平面格式,但如果可能的话我更愿意避免使用XML(请参阅上面的链接问题以获取底层数据的详细说明).
我已经开始使用D3进行可视化工作,我编写的布局似乎工作正常,当我用一些非常简单的数据测试它时,我在Javascript中作为数组进行硬编码.我读到D3中关于数据绑定的教程有点令人困惑,因为有些人使用JSON,有些人使用TXT/CSV格式,而有些则使用硬编码数组/矩阵.
在JSON的情况下,我观看了一个教程,其中叙述者坚定地建议在Web服务器上托管JSON文件并使用HTTP请求而不是本地文件读取来获取它.我意识到这是由于跨域请求限制,我相信我必须以某种方式解决.在这一点上,我不知道如何继续:
D3支持的可视化将在一系列HTML报告中,这些报告是作为我编写的分析工具的结果创建的.分析在用户计算机上完成,HTML报告也在客户端本地创建.
目标用户绝对不是技术娴熟的,因此不能指示他们在他们的计算机上运行Web服务器以便能够通过localhost提供JSON或任何其他类型或资源
为了记录,我已经尝试运行python SimpleHTTPServer模块来试用它,并且一切正常.然后,我尝试对生成的HTML报告中的数据进行硬编码,然后从使用D3的脚本调用JSON对象,
//d3.json("mydata.json", function(json){
d3.json(myjson, function(json){
nodeData = json.elements;
....
}
Run Code Online (Sandbox Code Playgroud)
失败,因为在这种情况下,我最终发送一个JSON对象,而D3.js期待一个URL.
我该怎么做才能避免/解决这个问题?
我正在开发一个内存和计算密集型项目.执行的很大一部分利用a的多线程FixedThreadPool.简而言之; 我有一个线程用于从几个远程位置(使用URL连接)获取数据并填充BlockingQueue要分析的对象和n个挑选这些对象并运行分析的线程.编辑:见下面的代码
现在,这种设置就像运行的OpenSUSE 11.3我的Linux机器上的魅力,但一个同事正在测试其运行Win7的是得到一个非常类似的机器上的自定义通知队列轮询超时(见下面的代码),他们很多实际.我一直在尝试监控她的机器上的处理器使用情况,看起来该软件在我的机器上没有超过15%的CPU,处理器的使用量达到了我的预期.
那么,我的问题是,这可能是队列"饥饿"的标志吗?可能是因为生产者线程没有获得足够的CPU时间?如果是这样,我如何才能更优先考虑池中的一个特定线程?
更新: 我一直试图找出问题,没有任何快乐......但我确实获得了一些新的见解.
使用JVisualVM分析代码的执行表明了一种非常奇特的行为.这些方法在短时间的CPU时间内被调用,两次之间没有任何进展.这对我来说意味着操作系统在某种程度上对这个过程起了制动作用.
禁用防病毒和备份守护进程对此问题没有任何重大影响
通过任务管理器(这里建议)更改java.exe(唯一实例)的优先级也不会改变任何内容.(话虽这么说,我不能给java"实时"优先级,并且必须满足于"高"prio)
分析网络使用情况显示出良好的数据流入和流出,因此我猜这不是瓶颈(虽然它是流程执行时间的相当一部分,但我已经知道并且几乎与我在Linux机器上得到的东西).
关于Win7操作系统如何限制我的项目的CPU时间的任何想法?如果它不是操作系统,可能是什么限制因素?我想再次强调,机器不会同时运行任何其他计算密集,除了我的软件之外,cpu几乎没有任何负载.这真让我抓狂...
编辑:相关代码
public ConcurrencyService(Dataset d, QueryService qserv, Set<MyObject> s){
timeout = 3;
this.qs = qserv;
this.bq = qs.getQueue();
this.ds = d;
this.analyzedObjects = s;
this.drc = DebugRoutineContainer.getInstance();
this.started = false;
int nbrOfProcs = Runtime.getRuntime().availableProcessors();
poolSize = nbrOfProcs;
pool = (ThreadPoolExecutor) Executors.newFixedThreadPool(poolSize);
drc.setScoreLogStream(new PrintStream(qs.getScoreLogFile()));
}
public void serve() throws InterruptedException {
try {
this.ds.initDataset();
this.started = true; …Run Code Online (Sandbox Code Playgroud) 我目前正在攻读研究领域的数据分析/信息学,并为全球研究界开发实用工具,我的绝大多数用户都是计算机新手.换句话说,我的大多数用户都不会打扰(或能够)收集必要的依赖关系并将它们放在类路径中.为了避免人们忽略我的软件,我一直将它作为"胖子"分发,其中所有依赖项都包含在一个可执行文件中.
我一直在阅读有关软件许可的一些内容,并意识到这样做可能在法律上非常棘手,而且不必过多关注图书馆的个别许可.我在StackOverflow(下面是一个完整的集合)中经历了一些问题,但最终变得越来越困惑.请注意,我完全清楚有许多其他关于软件许可的问题,但不是在自包含的软件包中,我在下面列出了许多很好的问题,这些问题提供了一些难题,但不是我的直截了当的答案.场景.
如果开发人员能够通过确认或否认下面的陈述来更好地了解此事,我将不胜感激.我认为这对于那些不是程序员但是专业但是越来越多地参与编程的人来说可能是有用的.我的理解是:
只要您不重新分发您的依赖项,与您为自己的项目选择的许可证相比,它们拥有的许可证并不重要.[不幸的是,走这条路也意味着我会疏远/恐吓我的用户群的很大一部分]
如果要重新分发所有依赖项,那么项目许可证应与依赖项兼容.[因此,我作为开发人员必须知道每个依赖项的许可证的详细信息??]
GPL是最严格的开源许可证(来自常见的),因此如果我使用GPL许可下的库,我自己的项目也必须在GPL下,这理论上可能与其他一些许可证相矛盾依赖.
假设我的项目是在GPL下,项目是非商业的这一事实并不重要,它也必须是开源的.[这在我的情况下相当棘手,因为算法和计算方法需要"新颖"才能发布]
我是否误解了或者只是错过了重要的事情,或者这是对情况的一个很好的总结?鉴于我的情况,我是否有其他选项,我可能没有在这里提及/想到,例如,是否可以避免有关我的依赖项的许可证的问题?
参考文献:
如何判断我是否可以在商业应用中重复使用"免费"软件库?[关闭]
我已经阅读了过去几个小时的哈希码函数,并且在自定义哈希码实现中使用素数作为乘数已经积累了一些问题.如果我能对以下问题有所了解,我将不胜感激:
在对@ mattb的答案的评论中,@ hstoerr主张使用更大的素数(例如524287)而不是公共素数31.我的问题是,给定一对或元素的哈希码函数的以下实现:
@Override
public int hashCode() {
final int prime = 31;
int hash1 = (pg1 == null) ? 0 : pg1.hashCode();
int hash2 = (pg2 == null) ? 0 : pg2.hashCode();
return prime * (hash1 ^ hash2);
}
Run Code Online (Sandbox Code Playgroud)这不会导致返回的溢出,int如果prime是大数?
假设溢出是没有问题的(JVM做一个自动施法)是它更好地做一个位位移,而不是一个演员?
我认为哈希码函数的性能根据哈希码的复杂性而有很大差异.主乘数的大小是否不影响性能?
在自定义哈希码函数中使用多个素数而不是单个乘法器更好/更智能/更快?如果没有,还有其他一些优势吗?请参阅@ jinguy对相关问题的回答中的示例:
public int hashCode() {
return a * 13 + b.hashCode() * 23 + (c? 31: 7);
}
Run Code Online (Sandbox Code Playgroud)其中a是一个int,b是一个 …
我使用Eclipse Marketplace在Eclipse中安装了Subclipse.我继续获得一个包含该消息的弹出窗口
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
Run Code Online (Sandbox Code Playgroud)
这是建议访问的链接. http://subclipse.tigris.org/wiki/JavaHL
在Mac OS XI下找到一个指向OpenCollabNet的链接,但我找不到该链接上的二进制文件,如果有人可以帮我找到二进制文件的链接,我将非常感激.还有一种方法可以通过macports安装Subversion JavaHL库,如果有的话,这是什么命令.
我在里面有很多任务TheadPoolExecutor.我的界面上有一个停止按钮,可以ThreadPoolExecutor立即终止所有线程.我正在寻找一种方法来做到这一点.(没有shutDown()或shutDownNow()).
谢谢
我尽量做到这一点.
到目前为止我所做的:我用的游戏将使用setTimeout或运行JavaScript setInterval.这不是闪光或任何特别的东西.到目前为止,我所做的就像测试运行(所以你可以更好地理解),几乎是循环Ajax,以便尽可能快地向PHP页面发送请求,然后PHP $_GET从请求中读取url,然后PHP编辑一个名为p1.html的文件$_GET,它只是玩家1的x和y轴坐标.所以在播放器2的浏览器中,它几乎完成了我上面所说的,现在当它接收到Ajax请求时,它将接收播放器1的坐标.因此JavaScript完成了它的工作,并将播放器1移动到播放器2的浏览器上.这就是我自己做的,我测试了它,是的,它是有效的,是的,当我修复所有的bug和东西时,它会永远持续下去.
说这就是我到目前为止所做的,但如果我想要一个在线格斗游戏或实时侧滚动游戏,这还不够快.这就是我需要帮助的地方.我在w3schools.com上了解了很多东西,但我不知道如何完成这项工作.那可能就是这样.我只需要浏览器1,将数据传输到浏览器2,类似于"1,100,200"或实际上更长一些,并让浏览器2将该数据作为JavaScript中的变量读取(类似x="received data";),就是这样.JavaScript将完成剩下的工作.
我确信我可以自己编写我需要的所有东西,但是为了将数据从A点发送到B点,每秒50次,我只是对此一无所知.甚至没有名字.最后,网址和示例将非常好(更清楚).特别是如果它已经在w3schools.com上(带有示例),我就错过了它.
我目前在Scala中尝试一些东西,试图习惯于函数式编程以及再次使用一种新语言(自上次以来已经有一段时间了).
现在给出一个字符串列表,如果我想将它们合并成一个长字符串(例如"scala", "is", "fun" => "scalaisfun"),我想通过一种方法来做它foldRight并在各个元素上应用连接.另一种方式,无论如何更简单,就是打电话mkString.
我检查了github,但无法真正找到相应功能的源代码(对此有任何帮助将不胜感激),所以我不确定这些功能是如何实现的.从我的头脑中,我认为mkString它更灵活,但感觉foldRight在某个地方可能有一个实现.这有什么道理吗?
否则scaladocs会提到为每个元素mkString调用toString.看到他们已经开始使用,mkString在这种特殊情况下,这可能是一个负面因素.在性能,简洁/优雅等方面对这两种方法的优缺点有何评论?
java ×6
javascript ×2
threadpool ×2
ajax ×1
apache ×1
apache-poi ×1
d3.js ×1
dependencies ×1
eclipse ×1
excel ×1
format ×1
hash ×1
hashcode ×1
javahl ×1
json ×1
licensing ×1
online-game ×1
php ×1
primes ×1
scala ×1
string ×1
subclipse ×1
svn ×1