根据标题,我有一个我需要解组的XML文件:
<?xml version="1.0"?>
<root>
<wrap>
<Element>something1</Element>
<Element>something2</Element>
<Element>something3</Element>
</wrap>
</root>
Run Code Online (Sandbox Code Playgroud)
"wrap"只是一个包装器,但"元素"的数量会有所不同.
我有两个类来为JAXB提供便利:
换类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "root")
public class Wrap {
@XmlElementWrapper(name = "wrap")
@XmlElement(name = "Element")
private List<Element> elementList = new ArrayList<>();
public Wrap() {}
public Wrap(List<Element> list) {
this.elementList = list;
}
public void addElement(Element element) {
this.elementList.add(element);
}
public List<Element> getWrap() {
return this.elementList;
}
public void setWrap(List<Element> wrap) {
this.elementList = wrap;
}
}
Run Code Online (Sandbox Code Playgroud)
元素类:
@XmlRootElement(name = "Element")
public class Element {
private String Element;
public …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Java高效加载大型CSV格式的文件(通常为200-600mb)(内存更少,访问速度更快).目前,该程序正在使用字符串数组列表.之前使用Lua程序处理此操作,该程序使用每个CSV行的表和用于保存每个"行"表的表.
以下是内存差异和加载时间的示例:
如果我没记错的话,Lua表中的重复项存在作为对实际值的引用.我怀疑在Java示例中,List正在保存每个重复值的单独副本,这可能与更大的内存使用量有关.
以下是CSV文件中数据的一些背景知识:
以下是加载数据可能需要的一些示例:
我的问题 - 是否有一个集合需要更少的内存来保存数据但仍然提供了轻松快速地搜索/排序数据的功能?