小编Mic*_*ael的帖子

Java对象类似于R data.frame

我真的很喜欢R中的data.frames,因为你可以在一个数据结构中存储不同类型的数据,并且你有很多不同的方法来修改数据(添加列,组合data.frames,...),这真的很容易从数据中提取子集,...

是否有可用的Java库具有相同的功能?我最感兴趣的是以类似矩阵的方式存储不同类型的数据,并能够提取数据的子集.

在Java中使用二维数组可以提供类似的结构,但是添加列并随后提取前k个记录要困难得多.

java r dataframe

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

d3.js:距离指向svg:path

是否存在(有效)方法(a)计算d3.js中固定点和svg:path元素之间的最短距离,以及(b)确定属于该距离的路径上的点?

d3.js

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

d3.js强制定向布局受形状约束

我想知道如果有是创建具有d3.js导向布局力和任意形状以这样的方式限制它的方式,

  • 所有节点都等效地分布形状和中
  • 边界和节点之间的距离等于节点之间的距离

我希望那里已有这样的解决方案.否则,我的想法是从力导向布局开始,并检查每次迭代中从节点到边界的距离.你有什么建议吗?

javascript d3.js force-layout

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

Java GregorianCalendar时区

我对Java Gregorian Calendar有一个奇怪的问题:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:S Z");
sdf.setTimeZone(TimeZone.getTimeZone("US/Pacific"));

GregorianCalendar cal1 = new GregorianCalendar(TimeZone.getTimeZone("US/Pacific"));
cal1.setTimeInMillis(1320566400000L);

GregorianCalendar cal2 = new GregorianCalendar(TimeZone.getTimeZone("US/Pacific"));
cal2.setTimeInMillis(1320570000000L);

System.out.println(sdf.format(cal1.getTime()));
System.out.println(sdf.format(cal2.getTime())); 
Run Code Online (Sandbox Code Playgroud)

我在默认时区= US Pacific的机器上执行了上面给出的代码,但机器在德国运行.

结果如下:

2011-11-06 01:00:00:0 -0700
2011-11-06 01:00:00:0 -0800
Run Code Online (Sandbox Code Playgroud)

我真的不明白,为什么结果中有不同的时区...我还测试了另一台机器上的代码(默认时区= GMT),它的工作正常.

有人有一个想法,为什么会出现这个问题?

最好,迈克尔

java timezone gregorian-calendar

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

Java:新线程中的observer-pattern通知

我有以下问题.给定观察者模式的接口EventNotifier:

public interface EventNotifier {
    void newEvent(final String value);
}
Run Code Online (Sandbox Code Playgroud)

实现此接口的类可以在另一个类中注册,该类通常调用newEvent方法.接口由外部库提供,因此我无法更改它.到目前为止,我使用匿名类实现了它:

Thread t = new Thread(new Runnable() {

    @Override    
    public void run() {

      watcher = new Watcher(new EventNotifier() {

          @Override
          public void newEvent(String value) {
              //do some stuff
              //will be called more than 20 times per second
          }
       });
 });
 t.start();
Run Code Online (Sandbox Code Playgroud)

为了更好的代码可读性,我想将这个匿名类暴露给一个新类,它扩展了Thread(因为处理应该与其他东西并行).

如何编写一个Thread,它什么都不做(没有无限循环等),但是等待调用newEvent方法?问题是,newEvent每秒会调用超过20次,所以我无法为每个调用启动一个新线程,但整个事情应该在一个线程中.

我希望你能解决问题,有人可以帮助我.

java multithreading observer-pattern

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

java垃圾收集器 - "获取"已删除的对象

是否有可能看到哪些对象将被垃圾收集器删除?我不需要对象的内容,但是对象的类是必要的.

我尝试编写一个实时应用程序,它创建并删除了很多对象,一段时间后应用程序运行速度变慢.目前我不确定这是我的代码还是外部库的问题.如此完美将是一个输出,它标识所有已删除的类,以及它们的"计数"(已删除了多少这些对象).

我希望有人可以帮助我.

最好,迈克尔

java garbage-collection

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

Java生产XML版本1.1

我有一个具有以下标头的xml文件:<?xml version="1.1" encoding="UTF-8"?>。这也是强制性的,此文件的版本为1.1,因为其中包含一些字符,而这些字符在1.1版中是不允许的。

我的任务是从文件中提取一些实体,然后再次将其另存为xml文件。如果我生成一个新的xml文件,它将是1.0版。由于新文件中存在一些编码错误,因此我认为问题是错误的xml版本。是否有可能在1.1版中生成xml文件(包括正确的标头)?

这是我当前代码的一个片段:

//read the file
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
...
}

//write the output file
SAXTransformerFactory fac = (SAXTransformerFactory)TransformerFactory.newInstance();
final TransformerHandler tfh = fac.newTransformerHandler();
Transformer transformer = tfh.getTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
Run Code Online (Sandbox Code Playgroud)

我希望有人能帮助我。

最好,迈克尔

java xml sax

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

GWT JSNI返回一个js函数

如何在GWT中从JSNI 返回JavaScript 函数?我尝试了以下方式:

/* JSNI method returning a js-function */
public static native JavaScriptObject native_getFunction() /*-{
    return function(a,b){
        //do some stuff with a,b
    }
}-*/;
Run Code Online (Sandbox Code Playgroud)

将函数存储在变量中

/* outside from GWT: store the function in a variable */
JavaScriptObject myFunction = native_getFunction();
Run Code Online (Sandbox Code Playgroud)

之后使用该函数会产生以下错误消息:

(TypeError): object is not a function
Run Code Online (Sandbox Code Playgroud)

有人知道如何解决这个问题吗?

javascript gwt d3.js

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

如何在Java中延迟MouseOver?

我有一个简短的问题,我希望有人可以帮助我.

请查看以下代码段:

public void mouseEntered(MouseEvent e){
   //wait 2 seconds.
   //if no other mouseEntered-event occurs, execute the following line
   //otherwise restart, counting the 2 seconds.
   foo();
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?我想实现像ToolTip这样的行为:你用鼠标进入一个区域.如果您的鼠标停留在该位置,请执行某些操作.

java swing timer mouseover wait

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