小编Fre*_*rik的帖子

如何在Java中将CamelCase转换为人类可读的名称?

我想编写一个将CamelCase转换为人类可读名称的方法.

这是测试用例:

public void testSplitCamelCase() {
    assertEquals("lowercase", splitCamelCase("lowercase"));
    assertEquals("Class", splitCamelCase("Class"));
    assertEquals("My Class", splitCamelCase("MyClass"));
    assertEquals("HTML", splitCamelCase("HTML"));
    assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
    assertEquals("A String", splitCamelCase("AString"));
    assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
    assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}
Run Code Online (Sandbox Code Playgroud)

java regex string camelcasing humanize

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

是否有Python的可视化分析器?

我现在使用cProfile但是我觉得编写pstats代码只是为了查询统计数据很繁琐.

我正在寻找一个可视化工具,向我展示我的Python代码在CPU时间和内存分配方面的作用.

Java世界的一些例子是visualvmJProfiler.

  • 这样的事情存在吗?
  • 是否有IDE可以做到这一点?
  • dtrace的帮助吗?

我知道KCachegrind for Linux,但我更喜欢可以在Windows/Mac上运行而无需安装KDE的东西.

python profiler user-interface profiling

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

Java中GPGPU/CUDA/OpenCL的最佳方法?

图形处理单元(GPGPU)上的通用计算是一种非常有吸引力的概念,可以利用GPU的强大功能进行任何类型的计算.

我喜欢使用GPGPU进行图像处理,粒子和快速几何操作.

现在看来,这个领域的两个竞争者似乎是CUDA和OpenCL.我想知道:

  • OpenCL在Windows/Mac上是否可以从Java使用?
  • 有哪些库与OpenCL/CUDA接口?
  • 是否直接使用JNA?
  • 我忘记了什么吗?

任何真实世界的经验/例子/战争故事都值得赞赏.

java cuda gpgpu opencl

92
推荐指数
5
解决办法
4万
查看次数

如何在Java注释中标记代码的逻辑部分?

Java类通常分为逻辑"块".是否有标记这些部分的约定?理想情况下,它将受到主要IDE的支持.

我个人使用这种方法:

//// Section name here ////
Run Code Online (Sandbox Code Playgroud)

但是,一些编辑似乎对此有疑问.

例如,在Objective-C代码中,您可以使用此方法:

#pragma mark -
#pragma mark Section name here
Run Code Online (Sandbox Code Playgroud)

这将导致XCode中的菜单如下所示:

替代文字

java comments

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

在奇数位置提取列表元素

所以我想创建一个列表,它是一些现有列表的子列表.

例如,

L = [1, 2, 3, 4, 5, 6, 7],我想创建一个子列表li,li包含L奇数位置的所有元素.

虽然我可以做到

L = [1, 2, 3, 4, 5, 6, 7]
li = []
count = 0
for i in L:
    if count % 2 == 1:
        li.append(i)
    count += 1
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有其他方法可以有效地以较少的步骤进行相同的操作.

python list slice

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

在Java中过滤元素的简单方法?

我想编写一个方法,从一个集合中删除遵循某种模式的所有元素.在函数式语言中,我会使用带有lambda表达式的filter().但是,在Java中,似乎我坚持这样:

public void removeAllBlueCars() {
    LinkedList<Car> carsToRemove = new LinkedList<Car>();
    for (Car c : cars) {
        if (c.getCarColor() == Color.BLUE) {
            carsToRemove.add(c);
        }
    }
    cars.removeAll(carsToRemove );
}
Run Code Online (Sandbox Code Playgroud)

直接删除元素会导致ConcurrentModificationException.有没有更好的方法来做到这一点,而不诉诸谷歌收藏

java collections

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

如何操作不可变对象树?

我正在使用不可变对象构建整个应用程序,以便更容易实现多线程和撤消.我正在使用Google Collections Library,它提供了Map,List和Set的不可变版本.

我的应用程序模型看起来像一棵树:

  • Scene是一个顶级对象,包含对根节点的引用.
  • 每个节点都可以包含子节点和端口.

对象图可能如下所示:

Scene
 |
 +-- Node
      |
      +-- Node 
           |
           +- Port
      +-- Node
           |
           +- Port
           +- Port
Run Code Online (Sandbox Code Playgroud)

如果所有这些对象都是不可变的,则由顶级SceneController对象控制:

  • 构建此层次结构的最佳方法是什么?
  • 如何替换对象树中任意深度的对象?
  • 有没有办法支持反向链接,例如具有"父"属性的节点?

更一般地说:

  • 是否出现了处理此类数据的模式?
  • 有关于这个主题的(学术)文献吗?
  • 这是一个好主意吗?

java class-design immutability

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

如何指定Java源文件的编码?

我在Java测试用例中使用了奇怪的Unicode字符串.编译器似乎将该文件解释为iso-8859-1,导致JUnit抱怨.

在Python中,我可以在文件顶部指定编码:

# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

Java中是否存在等价物?如何检测/指定.java文件的编码?

java unicode encoding

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

Clojure deftype:如何约束字段类型?

我正在尝试编写一个可以在Java中使用的Clojure库,而用户不知道它是用Clojure编写的.为此,我需要我的字段有适当的类型:

我喜欢我可以这样做:

(deftype Point [^double x ^double y])
Run Code Online (Sandbox Code Playgroud)

这会为x/y生成一个具有适当类型的类.但是,这似乎只适用于原语,而不适用于类:

(deftype Foo [^String bar])
Run Code Online (Sandbox Code Playgroud)

生成一个:

public final Object bar;
Run Code Online (Sandbox Code Playgroud)

我期待的地方:

public final String bar;
Run Code Online (Sandbox Code Playgroud)

有没有办法约束字段类型?在deftype/ 之外还有其他选择defrecord吗?

java clojure clojure-java-interop

10
推荐指数
2
解决办法
698
查看次数

JavaScript相当于Guava的前置条件?

在Java中,我使用Google Guava 检查我的前提条件:

public Port getPublishedPort(Port port) {
    checkArgument(port.isPublishedPort(), "Given port %s is not a published port.", port);
Run Code Online (Sandbox Code Playgroud)

在JavaScript中是否有相同的功能?

javascript guava

10
推荐指数
3
解决办法
1956
查看次数