作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
真的很难解决这个问题......
我有一个包含这样数据的文本文件(其中有 17000 行)
45226 1
45226 1
45226 1
45226 3
45226 5
23470 1
45226 5
45226 5
29610 4
37417 2
37417 3
37948 1
我想要做的是对文本文件进行排序(使用java),这样如果右边的值为1,那么所有左边的数字都会被分组。或者如果右边不等于 1(因此任何其他数字),则左边的值是组。例如(但不一定是这样)
3 x 45226 1
4 x 45226 MIXED
1 x 23470 1
1 x 29610 MIXED
2 x 37417 MIXED
1 x 37948 1
我知道我可能需要使用数组?或者某种形式?但我就是无法解决:'(
任何帮助、代码或建议 - 非常感谢!
谢谢!
最佳答案
我会生成两张 map ,一张用于当右边为 1 时,一张用于所有其他右边值。每个映射将左侧值映射到出现次数。然后,您可以通过循环数据来填充 map 。在伪 Java 中:
Map<Integer, Integer> onesMap = new HashMap<Integer, Integer>();
Map(Integer, Integer> otherMap = new HashMap<Integer, Integer>();
for (each left/right pair) {
Map<Integer, Integer> map = right == 1 ? onesMap : otherMap;
Integer count = map.get(left);
map.put(left, count == null ? 1 : (1 + count));
}
最后,键/值对为您提供每个左值所需的计数。
关于java - 如何在java中对文本文件进行排序和排列以对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614112/
我是一名优秀的程序员,十分优秀!