在对JavaDoc中findFirst说,如果流有一个邂逅的命令,那么第一个元素总是会返回,但如果流没有遭遇订单,可以返回的任何元素.
我试图演示它如何在没有遭遇顺序的流上工作,但我不能让它返回除了实际的第一个元素之外的任何东西.
我尝试将元素添加到a Set,它没有定义的遭遇顺序:
Set<String> words = new HashSet<>();
words.addAll(Arrays.asList("this", "is", "a", "stream", "of", "strings"));
Optional<String> firstString = words.stream()
.findFirst();
System.out.println(firstString);
Run Code Online (Sandbox Code Playgroud)
每次我跑,我得到a第一个字符串.然后我试图做一个Collections.shuffle关于List它添加到之前Set,但这并没有改变任何东西.
List<String> wordList = Arrays.asList("this", "is", "a", "stream", "of", "strings");
words = new HashSet<>();
words.addAll(wordList);
firstString = words.stream()
.findFirst();
System.out.println(firstString);
Run Code Online (Sandbox Code Playgroud)
我a每次都会回复这个词.
然后我尝试使用unorderedfrom方法BaseStream,声称返回没有遇到顺序的流,但没有区别:
firstString = Stream.of("this", "is", "a", "stream", "of", "strings")
.unordered()
.findFirst();
System.out.println(firstString);
Run Code Online (Sandbox Code Playgroud)
现在我this每次都得到这个词.我错过了什么吗?有没有办法证明findFirst在无序流上返回不同的值?
我正在使用mvn versions:display-dependency-updates versions:display-plugin-updates目标来检查依赖项或插件更新。
我的maven项目是一个多模块项目,如下所示:
moduleA
|- moduleB1
| |- moduleC
|- moduleB2
|- build-config/rules.xml
Run Code Online (Sandbox Code Playgroud)
由于有一些不需要的更新,例如我不想要的beta,所以我做了一个过滤器(有效)。我这样使用它:
<profile>
<id>maven-version-plugin-1</id>
<activation>
<property>
<name>version.rules.uri</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<configuration>
<rulesUri>${version.rules.uri}</rulesUri>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Run Code Online (Sandbox Code Playgroud)
我被迫使用配置文件和属性,version.rules.uri因为它必须引用现有文件(默认情况下,它指向./build-config/rules.xml,但也位于我settings.xml的绝对路径中)。
我想通过以下方式避免这种情况:
build-config项目m2:myGroupId:myArtifactId:version:scope:jar/rules.xml现在的问题是:是否有Maven Wagon插件(由Maven版本插件使用)的实现,该实现允许读取诸如jar之类的存储库条目?
我正在测试 JPA2.1 和新的“模式生成”功能。为此,我在 HyperSQL 数据库下测试了两种实现:
我对实现没有任何偏好(甚至对性能也没有偏好)。我测试了 EclipseLink,因为它是第一个可用的 JPA2.1 实现,但现在,Hibernate 4.3 已经出现并且兼容 JPA2.1。我唯一想要的就是获得独立于 JPA 提供程序的东西 - 除了配置(如缓存、日志记录、静态编织等)。
至于模式生成,我对几个方面感兴趣:
ImprovedNamingStrategy. 遗憾的是,它没有使用显式名称来命名外键:FK_8gc2pk9u5bsbhpi91x93c77o不是显式的,而是fk_foobar_sample显式的。因此,我添加了@Table,@JoinColumn和@Column注释来强制我的命名策略,现在我被外键生成阻止了,它的支持似乎很差(当遵守 JPA2.1 时):
@org.hibernate.annotations.ForeignKey,为此我需要注释字段或属性。但它是一个 hibernate 注释,因此它不符合 JPA2.1。@JoinColumn和 aforeignKey与@ForeignKey(name="..."). 但是,当它生成外键时,定义丢失了(即:),ALTER TABLE foobar ADD CONSTRAINT fk_foobar_zorg FOREIGN KEY () REFERENCES …我在Eclipse Luna下有一个Java项目,使用EclEmma 2.3.1.201405111647(最新版),它使用Jacoco 0.7.1,它支持Java 8,如更改日志中所述:
"2.3.1版(2014/05/11)
Run Code Online (Sandbox Code Playgroud)Fixed ASM 5.0.1 dependency conflicts with new ASM bundles in Eclipse 4.4 (GitHub #83). Upgrade to JaCoCo 0.7.1 for full Java 8 support.
我现在有以下toString:
@Override
public String toString() {
// [BLOCK0]
if (0 == value) {
return "0B";
}
// [BLOCK1]
final MutableLong val = new MutableLong(value);
final StringBuilder sb = new StringBuilder();
// [BLOCK2]
Arrays.asList(TERA_BYTES, GIGA_BYTES, MEGA_BYTES, KILO_BYTES, BYTES).forEach(unit -> {
// [BLOCK3]
long divider = unit.toBytes(1);
long n = val.longValue() …Run Code Online (Sandbox Code Playgroud) 我使用bash脚本生成一个文件列表,其中每个文件名可能包含空格(它在Windows上,使用Git Bash,我需要一些适用于Bash 3的文件).
该脚本大致如下:
_my_function() {
for i; do
echo $i
done
}
_test() {
local do_add_list
do_add_list[0]='Some file'
do_add_list[1]='Another file'
_my_function $do_add_list[@]
}
Run Code Online (Sandbox Code Playgroud)
虽然我真的不想按原样传递数组,但我想将它作为_my_function类似xargs或类似的参数传递,
_my_function 'Some file' 'Another file'
Run Code Online (Sandbox Code Playgroud)
除了作为全局变量之外,我怎么能在Bash 3(bash3的msys端口)中做到这一点?