也许是因为我现在已经编写了大约两个学期的编码,但我现在遇到的主要绊脚石是将教授的项目描述和要求转换为实际的代码.由于我目前在算法101中,我基本上做了一个自下而上的过程,从空白白板开始并绘制对象和方法交互,然后将其转换为类和代码.
但是现在教授已经将接口和抽象类混合在了一起.从理智上讲,我可以认识到它们是如何工作的,但是我正在弄清楚如何在当前项目中使用这些新工具(模拟Web服务器).
在我的教授自己的话中,将抽象描述映射到Java代码是真正的技巧.那么从英语(或任何语言)到计算机代码最常用的步骤是什么?您如何决定创建界面的位置和时间,或使用抽象类?
我回到了跨浏览器兼容性的狂野世界,并且遇到了浏览器之间Javascript兼容性的一些唠叨问题.
例如,我在CSS工作表中使用了很多样式继承,所以如果我需要编辑元素的样式,我必须使用 window.getComputedStyle(**element**, [pseudoElement]).getPropertyValue(**style**)
使用这一行代码要求我知道Firefox v <4需要一个伪元素对象,而其他浏览器认为它是一个可选参数.此外,Firefox和Opera要求该样式符合CSS属性名称,例如font-size,fontSize由于将CSS语法中的hypen解释为减号,IE需要Javscript语法中的名称.
这个例子用了几个小时来弄清楚为什么早期版本的IE用脚本的默认大小而不是元素的计算大小来实现我的text-resize脚本.Mozilla的网站是一个很好的参考,但仅限于他们的浏览器.是否有一个很好的综合跨浏览器功能列表?
我在编写旅行推销员计划时遇到过这种情况.对于内循环,我尝试了一个
for(Point x:ArrayList<Point>) {
// modify the iterator
}
Run Code Online (Sandbox Code Playgroud)
但是当向该列表添加另一个点时会导致ConcurrentModicationException被抛出.
但是,当我将循环更改为
for(int x=0; x<ArrayList<Point>.size(); x++) {
// modify the array
}
Run Code Online (Sandbox Code Playgroud)
循环运行良好,没有抛出异常.
两个for循环,那么为什么一个抛出异常而另一个没有呢?
对于一些当前的项目,我正在使用几个非常大的数据结构(在10K元素的区域内).为了能够在列表中访问这些数据,我需要使用循环和迭代器,当问题区域位于列表的后半部分时,这可能很痛苦.
因此,我发现自己花了很多时间在Eclipse的调试器中的F8按钮上循环遍历迭代循环的每个元素.当必须多次单步执行该特定部分以了解代码为何以特定方式作出反应时,情况会变得更糟.
如果一个人知道在遇到问题区域之前要执行多少次循环,有没有办法设置一个循环断点来执行到那个点然后暂停?
我有一个jQuery UI可排序列表元素,它是从Ajax请求动态填充的.
目前,工作流程正在进行
<li>通过jQuery.empty()调用擦除现有列表元素<li>列表元素并附加到<ul>列表中给定可排序列表对象$("#avail_list").sortable( ... );,我希望draggable禁用特定列表元素的属性,并根据其他元素中的现有值将不透明度设置为0.5.
为此,我有以下功能:
var disabled = [];
var appendString = ""
if (avail.length > 0) {
for (var i = 0; i < avail.length; i++) {
//check if current list element exists in existing value list. True results
//in grayed out and non-draggable element
compareMatch = checkMatch(avail[i], compare);
if (compareMatch)
disabled.push(list + "open_" + avail[i].id);
appendString += "<li id = …Run Code Online (Sandbox Code Playgroud) 在我的webapp中,从数据库查询中获取JSON数据响应,其中包括1到n个位置的纬度/经度坐标.我想计算从data[i]位置到当前位置的方位.
我已经适应代码在这里,但返回的轴承是不正确.
//starting lat/long along with converting lat to rads
var endLat = toRad(location.lat());
var endLong = location.lng();
//loop over response, calculate new headings for links and add link to array
for(var i=0; i<data.length; i++){
//this link's lat/long coordinates, convert lat to rads
var startLat = toRad(data[i].lat);
var startLong = data[i].lon;
//get the delta values between start and end coordinates in rads
var dLong = toRad(endLong - startLong);
//calculate
var y = Math.sin(dLong)*Math.cos(endLong);
var x = …Run Code Online (Sandbox Code Playgroud) 这是算法类中的额外功劳.问题表明
国王有一个N瓶酒窖,一瓶已经中毒.
毒药大约需要一个月的时间.国王希望在几个月的时间内使用最少的测试者识别确切的瓶子.
我的解决方案是
将N瓶子分成几M批并使用"M测试员"
第一个测试者尝试第一个和最后一个批次
第二个测试者尝试第一批和第二批.
第三个测试者尝试第二和第三批.
继续M批次,测试人员重叠.
当两位品尝了受污染葡萄酒的测试人员生病时,已确定该批次.该M-2测试人员留下每个品尝到来自被感染的很多一瓶,而生病的第三测试仪识别被感染的瓶子.
然而,该算法需要两倍的时间分配工作:一个月识别受污染的批次,第二个月识别受污染的瓶子.有更高效的算法吗?
我正在为学校做作业,我正在尝试一些额外的功劳.该程序将演示给定数组大小的线性和二进制搜索之间的效率差异.我有一个循环设置,创建一个int [size]数组,搜索一个随机数,然后创建一个新的int [size*2]数组.
然后将结果写入文本文件.输出写得很好,但在多次编译和运行程序后,输出文件有很多部分数据.
这是我的代码嵌套在try/catch块中:
File output= new File("c:\\BigOhResults.txt");
int counter=2;
if (output.canWrite() && output.exists()) {
BufferedWriter out= new BufferedWriter(new FileWriter(output, true));
out.write(type+" \n\n"); //writes the search type
out.write(type+"Search Results\n\n");
while (counter <= data.size()) {
out.write(data.get(counter-1)+" millisecond runtime " +
"for a "+ data.get(counter-2)+" random number " +"sample size\n");
counter=counter+2;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以在每次运行程序时删除该输出文件中的文本?
我这样做的原因是教授要求结果打印输出并绘制数据.我已经完成了图形要求,并且工作正常.我只想让文件打印输出与图形打印输出匹配.
对于学校项目,目标是将查询字符串模糊匹配到Song对象内的歌词字符串.整体数据结构是一个独特单词的TreeMap,与歌词中包含该单词的歌曲组合在一起.
我有包含查询字符串的初步匹配歌曲集.这里的转折是我必须根据匹配部分中的字符数(包括空格)为每个结果歌曲分配一个等级.例如,搜索"她爱你"会在匹配中返回:
"......她爱你......"甲壳虫乐队,等级= 13
"......她只是爱你......"Bonnie Raitt,等级= 18
"......她爱我,好吧......"猫王普雷斯利,排名= 23
我用来对结果进行排序是:
for (int i=0; i<lyrics.length; i++) {
if (lyrics[i].equals(query[0])) { //got the start point
start=i; //adjust the start index point
//loop through lyrics from start point
for (int j=1; j<query.length; j++) {
if (lyrics[j].equals(query[query.length-1])) {
end=i; //found the last word
}
//if next lyric word doesn't match this query word
if (!lyrics[i+j].equals(query[j])) {
//advance loop through lyrics. when a match is found, i is adjusted to
//the match index
for (int …Run Code Online (Sandbox Code Playgroud) 我已经基于按钮点击实现了ajax post功能.代码是
$.ajax({
type: "POST",
url: "includes/phpscripts?action=manage",
data: {location: loc, lat: latitude, lon: longitude, heading: head, filename: file},
success: function(){
$("#panoInfo").html("<div id='message'></div>");
$("#message").html("Valid Submission");
}
});
Run Code Online (Sandbox Code Playgroud)
我指定了POST方法,因为我不想通过URL看到变量.但是,他们是.
我发布之前的测试网址是
http://localhost/JMCTour/buildtour.php
Run Code Online (Sandbox Code Playgroud)
然后
http://localhost/JMCTour/buildtour.php?filename=1-prefix_blended_fused.jpg&location=Start+of+Tour&lat=43.682211&long=-70.450705&heading=100&submit=Save
Run Code Online (Sandbox Code Playgroud)
为什么?