在编写一些数组时,我注意到了这一点
char[] javaArray = {'j','a','v','a'};
Run Code Online (Sandbox Code Playgroud)
打印出来
java
Run Code Online (Sandbox Code Playgroud)
但
String[] javaStringArray = {"j","a","v","a"};
Run Code Online (Sandbox Code Playgroud)
仅打印堆栈位置.我知道char和String都是非常不同的,但是为什么JVM知道为第一个输出字符而第二个只有一个堆栈位置?
我正在使用IntelliJ和命令 System.out.println(javaArray);
我已经看到很多方法,其中一个新类在lambda方法引用中实例化,但似乎无法理解为什么.何时是new
方法引用中需要的关键字?
例如,以下传递编译:
UnaryOperator<String>stringToUpperCase = String::toUpperCase;
Run Code Online (Sandbox Code Playgroud)
但这不是:
UnaryOperator<String>stringToUpperCase = new String()::toUpperCase;
Run Code Online (Sandbox Code Playgroud) 只是一个简单的问题:我正在尝试在R中绘制图形,我已经介绍了如何做到这一点,但是如何删除我刚刚创建的一条线?例如:
x <- c(1, 2, 4, 5, 6.7, 7, 8, 10 )
y <- c(40, 30, 10, 20, 53, 20, 10, 5)
plot(x,y,main="X vs Y", xlab="X", ylab="Y")
lines(x,y,col="black",lty="dotted")
Run Code Online (Sandbox Code Playgroud)
这会产生一个漂亮的图形.但是,说我想删除我之前创建的那条线(或者也许是积分?!)我应该怎么做呢?
道歉长篇大论!我是R的新手,一直在努力提高我对语言的掌握.我偶然发现了这个有趣的足球结果建模项目:http://www1.maths.leeds.ac.uk/~voss/projects/2010-sports/JamesGardner.pdf
当我运行代码模拟一个完整的季节时,我一直遇到问题(首先提到第36页,附录第59页):
Games <- function(parameters)
{
teams <- rownames(parameters)
P <- parameters$teams
home <- parameters$home
n <- length(teams)
C <- data.frame()
row <- 1
for (i in 1:n) {
for (j in 1:n) {
if (i != j) {
C[row,1] <- teams[i]
C[row,2] <- teams[j]
C[row,3] <- rpois(1, exp(P[i,]$Attack - P[j,]$Defence + home))
C[row,4] <- rpois(1, exp(P[j,]$Attack - P[i,]$Defence))
row <- row + 1
}
}
}
return(C)
}
Games(TeamParameters)
Run Code Online (Sandbox Code Playgroud)
我得到的回应是
Error in `*tmp*`[[j]] : subscript out …
Run Code Online (Sandbox Code Playgroud) 根据一些体育成绩数据,我有一个Fixture
对象getHome()
和getAway()
方法.我想缩短这个我写的方法,只使用一个lambda函数(而不是创建一个新列表和两个lambdas),这可能吗?
private Collection<FixtureResult> finalResults(Team team) {
List<FixtureResult>finalResults = new ArrayList<>();
List<FixtureResult> homeResults = resultList.stream().filter(fixture ->
fixture.getHome().equals(team))
.collect(toList());
List<FixtureResult> awayResults = resultList.stream().filter(fixture ->
fixture.getAway().equals(team))
.collect(toList());
finalResults.addAll(homeResults);
finalResults.addAll(awayResults);
return finalResults;
}
Run Code Online (Sandbox Code Playgroud) 我希望根据单元格中选择的文本在Excel中填充一系列单元格(C2:C7)(将有一个下拉菜单,其中两个值为"SD"和"CS").到目前为止,这是我的代码:
Sub ChangeColor()Dim rCell As Range
With Sheet1
For Each rCell In .Range("C2:C7")
If rCell.Value <= SD Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= CS Then
rCell.Interior.Color = vbGreen
Else: rCell.Interior.Color = vbYellow
End If
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
我被告知有一个编译错误:结束没有With
我刚刚开始使用VBA,所以有人可以告诉我我做错了什么吗?