这是一项学术性的练习(免责声明).
我正在构建一个应用程序,它将尽可能快地获利,因为它将与其他人竞争.
我知道使用反射声明一个类(下面的示例)将遭受巨大的惩罚而不是标准声明.
Class mDefinition = Class.forName("MySpecialClassString");
Constructor mConstructor = mDefinition.getConstructor(new Class[]{MySpecialClass.class});
myClass = (MySpecialClass) mConstructor.newInstance(this);
Run Code Online (Sandbox Code Playgroud)
然而,在宣布myClass我是否以标准方式使用它之后,myClass.myMethod() 我是否也会遭遇性能损失,或者它是否会像我以标准方式宣布该类一样?
我有一个Java程序,它根据用户输入生成一个数学方程式.我想评估这个等式,但迭代它的语法树是相当慢的.更快的解决方案是将等式放入Java文件,编译它,并调用已编译的代码(在运行时).这是我目前正在做的事情:
Equation.java使用该函数创建一个文件作为静态成员.例如,如果生成的等式是3*x + 2*y(实际等式更复杂),程序将创建文件
public class Equation {
public static DoubleBinaryOperator equation = (x, y) -> 3*x + 2*y;
}
Run Code Online (Sandbox Code Playgroud)Equation.class使用JavaCompiler将其编译对于看起来应该简单的东西来说,这是一个巨大的样板.是否有更简单的方法将此等式转换为函数并在运行时调用它?
在Haskell中,类型列表Ord a => [a]具有字典顺序.例如,
> compare [1, 2, 3] [2, 3, 4]
LT
> compare [1] [1, 2]
LT
Run Code Online (Sandbox Code Playgroud)
这是大多数语言对字符串的词典排序的直接概括.例如,在Java中
"abc".compareTo("bcd") // -1
"a".compareTo("ab") // -1
Run Code Online (Sandbox Code Playgroud)
标准库或其他库中是否有任何Java函数实现Haskell所具有的列表的词典排序?我希望它有类型的签名
<T extends Comparable<T>> int compare(List<T>, List<T>)
Run Code Online (Sandbox Code Playgroud)
自己实施它并不困难,但我宁愿不重新发明轮子.
我有两个1D numpy的阵列start和stop,两者都包含整数(这是用来索引一些其它阵列).我有以下代码.
index_list = []
for i in range(len(start)):
temp = range(start[i], stop[i])
index_list.extend(temp)
index_list = np.array(index_list)
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以对此进行矢量化?