我目前正在学习Java Collections API并且觉得我对基础知识有很好的理解,但我从未理解为什么这个标准API不包含Graph实现.这三个基类很容易理解(List,Set和Map),并且它们在API中的所有实现都非常简单和一致.
考虑到图形作为模拟给定问题的潜在方式的频率,这对我来说没有意义(它可能存在于API中,我当然没有找到正确的位置).Steve Yegge在他的一篇博客文章中建议程序员在攻击问题时应首先考虑图形,如果问题域不能自然地适应这种数据结构,那么只考虑替代结构.
我的第一个猜测是,没有通用的方法来表示图形,或者它们的接口可能不够通用,以使API实现有用吗?但是如果你将图形去掉它的基本组件(顶点和连接一些或所有顶点的一组边),并考虑通常构造图形的方式(addVertex(v)和insertEdge(v1,v2)等方法) )似乎通用的Graph实现是可行和有用的.
感谢您帮助我更好地理解这一点.
我想编写一个Perl单行代码,用空格替换当前目录中一批文本文件中的所有选项卡'\ t',对可见间距没有影响.
谁能告诉我怎么做?
我刚刚安装了与Glassfish捆绑在一起的Java EE SDK.网站不清楚,但似乎这些必须一起下载.我只想弄清楚我的系统中实际安装了EE的位置.我只看到C:\ glassfishv3及其下面的目录.
Glassfish不是一个独立于EE的Web服务器吗?我只想使用EE中的类来编写Servlet.有点恼火,Oracle正在推动他们的服务器使用API扩展.
所以我的问题是:
我可以从我的系统中删除Glassfish并仍然使用EE构建程序吗?
EE安装在哪里?
非常感谢你的帮助.
我正在使用Apache Ant 1.8将Web应用程序部署到本地Tomcat服务器中,当我在命令行运行'ant deploy'时,build.xml文件(如下所示)产生了预期的效果.
我的问题是,我注意到.war文件被放置在我期望的位置(deploy.dir在我的主目录的build.properties文件中定义),但它也意外地解压缩.war并将上下文本身提取到目录.在下面的build.xml文件中配置了哪个?
<target name='init'>
<property file='${user.home}/build.properties'/>
<property name='app.name' value='${ant.project.name}'/>
<property name='src.dir' location='src'/>
<property name='lib.dir' location='lib'/>
<property name='build.dir' location='build'/>
<property name='classes.dir' location='${build.dir}/classes'/>
<property name='dist.dir' location='${build.dir}/dist'/>
</target>
<target name='initdirs' depends='init'>
<mkdir dir='${classes.dir}'/>
<mkdir dir='${dist.dir}'/>
</target>
<target name='compile' depends='initdirs'>
<javac srcdir='${src.dir}/java' destdir='${classes.dir}'>
<!--
<classpath>
<fileset dir='${lib.dir}/development' includes='javaee.jar'/>
<fileset dir='${lib.dir}/production' includes='jr.jar'/>
</classpath>
-->
</javac>
</target>
<target name='war' depends='compile'>
<war destFile='${dist.dir}/${app.name}.war' webxml='${src.dir}/web/WEB-INF/web.xml'>
<classes dir='${classes.dir}'/>
<!--
<zipfileset dir='${lib.dir}/production' includes='jr.jar' prefix='WEB-INF/lib' />
-->
<fileset dir='${src.dir}/web' excludes='WEB-INF/web.xml' />
</war>
</target>
<target name='build' depends='war' description='compile and …Run Code Online (Sandbox Code Playgroud) 我正在尝试用 C 语言编写一个具有内存映射图形的复古计算机模拟器(使用 SDL2 用于图形和声音)。
这将是一个 16 位 WORD 机器,每个 RAM 位置保存 16 位。屏幕尺寸为 512 x 256 像素,只有黑白。图形被映射到 8 K 内存块中(因此有 8192 个位置,每个位置有 16 位)。
该内存区域中的每个位保存单个像素的数据,黑色 (0) 或白色 (1)。
根据我对 SDL2 的了解,我相信它的最小像素格式限于每像素 8 位,但我不确定。这将是 256 种颜色调色板的索引。
有谁知道如何将这些原始位图数据直接发送到 SDL2 函数,该函数将返回一个 Surface,然后我可以将其 blit 到显示器?
我正在研究UVa Online Judge问题集存档作为练习Java的方法,并且作为一种练习数据结构和算法的方法.
他们给出了一个示例输入文件,提交给在线评判者作为起点(这是问题100的解决方案).
标准输入流(java.lang.System.in)的输入是此站点上任何解决方案的一部分,但我无法理解他们在示例解决方案中提供的System.in读取的实现.确实,输入文件可以包含整数,字符串等的任何变化,但每个解决方案程序都需要从System.in读取基本的文本输入行,一次一行.必须有一个更好的(更简单和更健壮的)从Java标准输入流收集数据的方法,而不是:
public static String readLn(int maxLg) {
byte lin[] = new byte[maxLg];
int lg = 0, car = -1;
String line = “”;
try {
while (lg < maxLg) {
car = System.in.read();
if ((car < 0) || (car == ‘\n’)) {
break;
}
lin[lg++] += car;
}
} catch (java.io.IOException e) {
return (null);
}
if ((car < 0) && (lg == 0)) {
return (null); // eof
}
return (new String(lin, 0, lg));
} …Run Code Online (Sandbox Code Playgroud) 我知道C89中的约定总是在C程序中从main返回0整数值,如下所示:
int main() {
/* do something useful here */
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是为了向操作系统返回"成功"结果.我仍然认为自己是C语言中的新手(或者说是最好的中级程序员),但到目前为止,我还没有完全理解为什么这很重要.
我的猜测是,如果你将这个程序的输出绑定到另一个程序的输入中,这是一个有用的返回结果,但我不确定.我从来没有发现它有用,或者我只是不明白其意图是什么.
我的问题:
main()有用?多年来,我一直对寻找更好的素数识别器的问题感兴趣.我意识到这是一个巨大的学术研究和学习领域 - 我对此感兴趣只是为了好玩.这是我在C(下面)中首次尝试可能的解决方案.
我的问题是,你能否提出一个改进(没有引用网上的其他参考,我正在寻找实际的C代码)?我想从中获得的是更好地理解确定这样的解决方案的性能复杂性.
我是否正确地得出结论,这个解决方案的复杂性是O(n ^ 2)?
#include <stdio.h>
#include <math.h>
/* isprime */
/* Test if each number in the list from stdin is prime. */
/* Output will only print the prime numbers in the list. */
int main(int argc, char* argv[]) {
int returnValue = 0;
int i;
int ceiling;
int input = 0;
int factorFound = 0;
while (scanf("%d", &input) != EOF) {
ceiling = (int)sqrt(input);
if (input == 1) {
factorFound = 1;
}
for …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Cygwin设置上运行Apache服务器以在线跟踪Java Ranch Cattle驱动器教程(基本上,学习使用MySQL后端的Java EE网页开发.)
我使用Cygwin安装程序来安装httpd(这是我安装在cygwin上使用的大多数其他开发工具的方式),它说安装完成,但是当我运行'httpd'时它无法找到命令.它似乎也不存在预期的安装目录(/ usr/local/apache ...).
有没有人有使用此设置的经验,如果是这样,您可以指导我完成启动和运行服务器并使浏览器显示服务器默认页面的初始步骤?
为了保持答案的重点,我不想讨论在Windows系统上运行Apache的弊端 - 这只是为了学习目的.提前致谢.
我在Windows XP上使用Cygwin安装开发C++程序.
我也安装了MinGW,因为我想使用它的g ++版本,而不是Cygwin附带的版本.
那部分似乎设置正确.当我开始Cygwin会话时,我看到了这个:
$ g ++
/cygdrive/c/MinGW/bin/g ++
这是正确的,g ++指向我的MinGW安装.
我不明白的是当我编写包含库代码的代码(例如,来自`Winsock/BerkleySockets API的头文件)时,如何判断编译器在哪里找到头文件?
例如,如果我#include "winsock.h"在我的代码中,编译器在哪里找到该头文件?
如果我在计算机上搜索winsock.h,我会得到:
C:\ MinGW \包括
C:\ cygwin\usr\include\w32api
两者都有winsock.h的副本(虽然这些文件大小不完全相同,所以它们不能相同).
谢谢您的帮助.
我还应该指出,我有C:\MinGW\bin我的Windows PATH环境变量,以及我/etc/profile file在Cygwin中配置的相同路径.
java ×4
c ×3
apache ×2
cygwin ×2
algorithm ×1
ant ×1
api ×1
c++ ×1
collections ×1
deployment ×1
emulation ×1
exit-code ×1
file ×1
glassfish ×1
graph ×1
input ×1
install ×1
java-ee ×1
mingw ×1
performance ×1
perl ×1
primes ×1
replace ×1
return-value ×1
sdl-2 ×1
standards ×1
system.in ×1
text ×1
tomcat ×1