我想尝试使用Apache Commons CLI,并认为一个好的起点是它的网页上的"使用"部分.
http://commons.apache.org/proper/commons-cli/usage.html
现在,这个例子建议创建一个DefaultParser,但是我能找到的最接近的声音是BasicParser.这是用的东西,我错过了什么吗?
我需要复制列表中的每个元素。这是我为此想到的:
List.range(1,5).map(i => List(i,i)).flatten
Run Code Online (Sandbox Code Playgroud)
哪个输出
List[Int] = List(1, 1, 2, 2, 3, 3, 4, 4)
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是最有效的方法(最终它需要在大量数据上运行),因为对于每个元素,都会创建一个新列表。
(上面是一个int范围,为使示例简单起见)
有什么建议么?
我经常sort | uniq -c用来计算统计数据.现在,如果我有两个带有这种计数统计数据的文件,我想将它们放在一起并添加计数.(我知道我可以附加原始文件并计算在那里,但我们假设只有计数文件可以访问).
例如给出:
a.cnt:
1 a
2 c
Run Code Online (Sandbox Code Playgroud)
b.cnt:
2 b
1 c
Run Code Online (Sandbox Code Playgroud)
我想连接并获得以下输出:
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)
在shell中执行此操作的最短方法是什么?
编辑:
谢谢你到目前为止的答案!
可能还需要考虑的一些可能的方面:
sort | uniq -c这种情况下是否有一些样式命令行选项,一次只能查看两行?我有一个构造函数,它接受一个主参数(data)和另一个参数(model),它具有合理的默认初始化,这取决于主参数.
我希望有可能在model适当的时候给出另一个价值.
一个简化的例子:
1)没有默认参数:
class trainer(data:Int,model:Double) {}
Run Code Online (Sandbox Code Playgroud)
2)初始化:
def init(data:Int): Double = 1.0/data
Run Code Online (Sandbox Code Playgroud)
3)如果初始化独立于其他参数,它将起作用:
class trainer(data:Int, model:Double = init(1)) {}
Run Code Online (Sandbox Code Playgroud)
4)我想拥有什么,但是什么给出了错误:
class trainer(data:Int, model:Double = init(data)) {}
Run Code Online (Sandbox Code Playgroud)
实现我想做的最好/最接近的方式是什么?
(我的具体案例涉及一个构造函数,但我会感兴趣是否在函数的一般情况下也有一种方法)
假设您从"流"源读取数据项和相关分数(即无随机访问或多次传递).
什么是在任何时候保持目前为止遇到的最低权重的内存元素的最佳方法.我会对"Java"方式感兴趣,成语越短越好,而不是算法("使用搜索树,插入新元素,如果超出大小则删除最大").
下面是我提出的解决方案,但是我发现它有点冗长,也有一些行为可能是意外的(具有不同分数的相同项目可能保持多次,而添加相同分数的相同项目仅保留一次) .我也觉得应该有一些东西存在.
import java.util.AbstractMap.SimpleEntry;
import java.util.Map.Entry;
import java.util.Comparator;
import java.util.TreeSet;
/**
* Stores the n smallest (by score) elements only.
*/
public class TopN<T extends Comparable<T>> {
private TreeSet<Entry<T, Double>> elements;
private int n;
public TopN(int n) {
this.n = n;
this.elements = new TreeSet<Entry<T, Double>>(
new Comparator<Entry<T, Double>>() {
@Override
public int compare(Entry<T, Double> o1, Entry<T, Double> o2) {
if (o1.getValue() > o2.getValue()) return 1;
if (o1.getValue() < o2.getValue()) return -1;
return o1.getKey() == null ? 1 …Run Code Online (Sandbox Code Playgroud) 我有一个这样的嵌套地图:
Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0))
Run Code Online (Sandbox Code Playgroud)
我想以一种方式“展平”它,以便外部和内部地图的键配对,即对于上面的示例:
Seq((1,2),(1,4),(6,7))
Run Code Online (Sandbox Code Playgroud)
什么是优雅的方式来做到这一点?