小编Bin*_*Bin的帖子

在Java中将大数据集加载到ArrayList(ArrayList的最大容量)

我正在尝试加载超过2 ^ 32个元素的数据集,并将这些元素放在ArrayList中anArrayList.此数据按时间顺序排列,因此我使用ArrayList存储数据以保持顺序.同时,我想快速访问String中的元素elementID.现在我使用HashMap将a映射elementID到元素Object中anArrayList.我使用整数currentAddingAt来跟踪anArrayList上的索引以添加元素.这是相关的代码:

ArrayList<ElementX> anArrayList;
int currentAddingAt;
HashMap<String, ElementX> elementToObjHashMap;

... ...

public void addAnElement(ElementX e){
    anArrayList.add(currentAddingAt, e);
    elementToObjHashMap.put(e.getElementID, ArrayList.get(currentAddingAt));  
}
Run Code Online (Sandbox Code Playgroud)

当我改变的类型的问题来了currentAddingAt,从intlong.因为ArrayList的get(int index)方法仅int作为参数,根据Oracle的文档(http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html).这也让我想知道:

ArrayList的容量可以大于Java中的最大int数(2 ^ 32)吗?

除了在这种情况下使用ArrayList和HashMap之外还有哪些选项(保持大数据集的顺序并且仍然能够从键快速映射到对象)?除了普通的Java之外,我还需要一些库(甚至是某些框架)吗?

java arraylist biginteger large-data bigdata

3
推荐指数
1
解决办法
4229
查看次数

为什么列表理解可以比Python中的map()更快?

我正在研究Python中循环结构的性能问题,并发现以下语句:

除了列表推导的句法益处之外,它们通常比等效使用map更快或更快.(性能提示)

列表推导比等效的for循环运行得快一点(除非你只是扔掉结果).(Python速度)

我想知道引擎盖下有什么区别可以让列表理解这个优势.谢谢.

python performance interpreter list-comprehension

3
推荐指数
1
解决办法
815
查看次数

将两个系列与 None 值(pandas DataFrame)连接起来?

我正在尝试连接 Pandas DataFrame 中的两列。问题是当任一系列中都存在 None 值时,结果为 NaN。由于真实数据非常大,有保留原始None值供以后参考的价值,希望不要更改列中的原始值。有没有办法在熊猫中实现这一目标?

创建一个示例数据帧:

import pandas as pd
f = pd.DataFrame([['a', 'b','c','a', 'b','c'],['1', '2','3', '4', '5','6', ]])
f = f.transpose()
f.columns = ['xx', 'yy']
f.xx[0] = None
f.yy[0] = None
f.xx[2] = None
f.yy[3] = None

    xx      yy
0   None    None
1   b       2
2   None    3
3   a       None
4   b       5
5   c       6
Run Code Online (Sandbox Code Playgroud)

我试过f['new_str'] = f.xx + f.yyf['new_str'] = f['xx'] + f['yy']。如果任何值是 None 类型,则两者都将连接值设置为 NaN。我认为这是由于熊猫如何处理None类型。None 类型和 str …

python dataframe pandas

3
推荐指数
1
解决办法
2083
查看次数

bash 字符串替换中的变量

我正在尝试在 bash 中进行字符串替换,想更好地理解它。

我设计了一个这样的成功案例:

a=abc_de_f
var=$a
echo ${var//_/-}
Run Code Online (Sandbox Code Playgroud)

输出是abc-de-f. 这有效。

但是,以下脚本失败:

a=abc_de_f
echo ${$a//_/-}
Run Code Online (Sandbox Code Playgroud)

错误消息是${$a//_/-}: bad substitution。这似乎与我们如何使用变量进行替换有关。为什么这会失败?在这种情况下 bash 如何处理变量?

另外,在 bash 字符串替换中处理转义字符的最佳实践是什么?

unix linux bash shell

0
推荐指数
1
解决办法
1187
查看次数