来自Jigsaw项目:
使开发人员能够更轻松地为Java SE和EE平台构建和维护库和大型应用程序.
我正在尝试学习Jigsaw是什么项目,到目前为止,Project Jigsaw的目标似乎与我们使用Maven(或Gradle)依赖关系管理所做的有些重叠:
我一直试图找到这个问题的答案,但没有得到任何令人满意的解释.这是一些背景:
Java 7允许我们在单个catch块中捕获多个异常,前提是这些异常来自不同的层次结构.例如:
try {
// some code
} catch(SQLException | FileNotFoundException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是如果异常来自同一层次结构,我们必须使用多个catch块,如:
try {
// some code
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试编写如下代码编译器抱怨"异常FileNotFoundException
已被替代IOException
"
try {
// some code
} catch(FileNotFoundException | IOException e) { // compiler error
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:为什么编译器在最后一种情况下报告错误,不能弄清楚FileNotFoundException
是特殊情况IOException
吗?当我的异常处理逻辑相同时,这将节省代码重复.
我有一个UserProfile
包含用户数据的类,如下所示:
class UserProfile {
private String userId;
private String displayName;
private String loginId;
private String role;
private String orgId;
private String email;
private String contactNumber;
private Integer age;
private String address;
// few more fields ...
// getter and setter
}
Run Code Online (Sandbox Code Playgroud)
我需要计算非null
字段以显示用户填充了多少百分比的配置文件.还有一些,我不希望在百分比计算要考虑几个字段:userId
,loginId
和displayName
.
简单的方法是使用多个If
语句来获取非空字段,count
但它会涉及大量的锅炉板代码,还有另一个类Organization
我需要显示完成百分比.所以我创建了一个实用程序函数,如下所示:
public static <T, U> int getNotNullFieldCount(T t,
List<Function<? super T, ? extends U>> functionList) {
int count = 0;
for (Function<? …
Run Code Online (Sandbox Code Playgroud) 我是索尔的初学者.在我的项目,NGramFilterFactory
并且EdgeNGramFilterFactory
,两者都被用于一个字段.我对文档的理解EdgeNGramFilterFactory
是用于"开始于"查询,而NGramFilterFactory
适用于"包含"查询.
我索引两者的组合小的数据集(在其中我只用NGramFilterFactory
并且在另一个我用既NGramFilterFactory
和EdgeNGramFilterFactory
),但我没有看到在输出任何差异.
如果我的理解是正确的,那么在某种程度上EdgeNGramFilterFactory
是一个子集NGramFilterFactory
.如果这是真的那么在同一个领域使用两种类型的过滤器有什么好处?
由于编译器可以轻松区分Java class
和interface
Java,为什么要提供显式关键字extends
并implements
为代码添加详细程度?例如:
class Animal{}
interface FourLegged{}
class Dog : Animal, FourLegged {} // why can't we have this syntax in Java
Run Code Online (Sandbox Code Playgroud)
我没有看到任何理由为什么Java在未破坏现有代码库的情况下无法在将来的版本中提供类似C#的语法.有什么理由,请解释一下.
很抱歉在两者之间编辑我的问题,但我的类似问题也适用于Scala.正如帕特里克霍夫曼指出的那样:
他们当然可以,但是Java在语言方面总是比C#更冗长.
在Java的情况下,我同意他的看法.但我认为Scala更喜欢清洁而不是冗长(例如;
可选),它也可以区分class
,interface
和trait
.为什么它也遵循Java在这方面的道路?
我有一些巨大的数据集(介于10-20之间),我需要找出这些数据集之间的关系.数据集非常庞大,计算可能不适合单台计算机.这些数据集中的字段是文本而不是数字.增加复杂性,一些字段也可能有不正确的单词,例如'huose'为'house',我正在使用模糊算法.
为了解决这个问题,我正在考虑使用余弦相似性但不确定这么大的数据集的性能.我的问题是,这种算法是否足以应对这种问题(性能和准确性).如果没有,是否还有其他一些我应该研究的算法?
编辑:更多信息
我将使用的数据集可能是文本文件和数据库表的混合.列中的值通常为10-50 char,并且它不是一个巨大的文档.我寻找的关系是数据集的一列与另一列的相似程度.我有点想根据列之间的相似性得出分数.例如
Col1 Col2 Col3 A B X C S B E C A T V C X E
因此,在上面的例子中,人们可以说Col1
并且Col3
彼此之间有很强的关系Col1
而且Col2
关系很弱.
我有这样的数据集,我将从csv文件中获取数据,并使用scala将其转换为RDD。
+-----------+-----------+----------+
| recent | Freq | Monitor |
+-----------+-----------+----------+
| 1 | 1234 | 199090|
| 4 | 2553| 198613|
| 6 | 3232 | 199090|
| 1 | 8823 | 498831|
| 7 | 2902 | 890000|
| 8 | 7991 | 081097|
| 9 | 7391 | 432370|
| 12 | 6138 | 864981|
| 7 | 6812 | 749821|
+-----------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)
如何对所有列上的数据进行排序?
谢谢
java ×3
scala ×2
algorithm ×1
apache-spark ×1
bigdata ×1
c# ×1
inheritance ×1
java-7 ×1
java-8 ×1
java-9 ×1
java-platform-module-system ×1
maven ×1
n-gram ×1
solr ×1
tokenize ×1