小编Bri*_*ack的帖子

java是否具有像c ++ STL中那样的多集数据结构?

我需要一个像STL multiset一样工作的数据结构,但Java中的TreeSet不允许重复元素.Java中是否有内置的数据结构,相当于multiset?

java data-structures

27
推荐指数
3
解决办法
2万
查看次数

适用于Java的优秀且有效的CSV/TSV Reader

我试图读取大CSV和TSV(Tab sepperated)文件大约1000000行或更多.现在我试着读一下TSV含有的~2500000行opencsv,但是它却引发了我的注意java.lang.NullPointerException.它适用于TSV带有~250000线条的较小文件.所以我想知道是否有任何其他Libraries支持阅读巨大CSV和TSV文件.你有什么想法?

每个对我的代码感兴趣的人(我缩短它,所以Try-Catch显然无效):

InputStreamReader in = null;
CSVReader reader = null;
try {
    in = this.replaceBackSlashes();
    reader = new CSVReader(in, this.seperator, '\"', this.offset);
    ret = reader.readAll();
} finally {
    try {
        reader.close();
    } 
}
Run Code Online (Sandbox Code Playgroud)

编辑:这是我构建的方法InputStreamReader:

private InputStreamReader replaceBackSlashes() throws Exception {
        FileInputStream fis = null;
        Scanner in = null;
        try {
            fis …
Run Code Online (Sandbox Code Playgroud)

java csv large-files opencsv

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

如何为非法反射访问警告抛出异常?

如何为非法反射访问警告抛出异常?例如,考虑以下代码:

import org.apache.commons.lang3.builder.*;

class Test {
    public static void main(String[] args) {
        System.out.println(ReflectionToStringBuilder.toString(Boolean.TRUE));
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码向 System.err 打印以下警告:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.commons.lang3.builder.ReflectionToStringBuilder (file:/Users/brianschack/eclipse-workspace/User%20Libraries/com
mons-lang3-3.7/commons-lang3-3.7.jar) to field java.lang.Boolean.value
WARNING: Please consider reporting this to the maintainers of org.apache.commons.lang3.builder.ReflectionToStringBuilder
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Run Code Online (Sandbox Code Playgroud)

Boolean.TRUE 是一个如此简单的值,我真的不需要 ReflectionToStringBuilder。但是更复杂的类型(例如 HashMap)会打印相同的警告。我选择 Boolean.TRUE 是为了简化这个例子。

当我搜索此警告消息时,我发现建议将其报告给包维护者、避免警告或完全禁用它(JDK9:发生非法反射访问操作。org.python.core.PySystemState)。 …

java reflection illegalaccessexception apache-commons-lang apache-commons-lang3

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

在Java中,全局记录器和根记录器之间有什么区别?

在Java类中java.util.logging.Logger,全局和根记录器之间有什么区别?它们是一样的吗?该Logger::getGlobal方法返回全局记录器.并且Logger::getParent反复调用直到结果为null将产生根记录器.当我Logger::getLogger使用空字符串调用name参数时,它是返回全局记录器还是根记录器?

http://docs.oracle.com/javase/9​​/docs/api/java/util/logging/Logger.html

java logging global java.util.logging

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

为什么 ToStringBuilder 工作不一致?

在下面的代码中,为什么包含的两行会System.out.println(person); 产生不同的输出?第二行间接调用了Job.toString产生字符串的方法"Manager",但第一行神秘地没有产生Job@28f67ac7。在person.put("a", "b");我看来,这两者之间的界限应该没有任何区别。

代码:

import java.util.*;
import org.apache.commons.lang3.builder.*;

class Job extends HashMap<String, String> {
    @Override public String toString() {
        return "Manager";
    }
}

class Person extends HashMap<String, String> {
    Job job;

    Person() {
        this.job = new Job();
    }

    @Override public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

class Test {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person);
        person.put("a", "b");
        System.out.println(person);
    }
}
Run Code Online (Sandbox Code Playgroud)

安慰:

Person@2b80d80f[job=Job@28f67ac7,threshold=0,loadFactor=0.75]
Person@2b80d80f[job=Manager,threshold=12,loadFactor=0.75]
Run Code Online (Sandbox Code Playgroud)

java tostring apache-commons apache-commons-lang apache-commons-lang3

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