java - 缩短 Java 代码的语言技巧?

标签 java syntax collections

<分区>

我目前正在重新发现 Java(最近经常使用 Ruby),而且我喜欢编译时检查所有内容。它使重构变得如此简单。但是,我怀念快速随意地使用类型来执行 each 循环。这是我最糟糕的代码。

是否尽可能短?我有一个名为 looperTracks 的集合,其中包含实现 Looper 的实例。我不想修改该集合,但我想遍历其成员加上 this(它还实现了 Looper)。

List<Looper> allLoopers = new ArrayList<Looper>(looperTracks.length + 1);
for (LooperTrack track : looperTracks) {
    allLoopers.add(track);
}
allLoopers.add(this);

for (Looper looper : allLoopers) {
    // Finally! I have a looper

我特别担心从 Java 1.5 开始我可能错过的任何新功能。对于这个问题,我不是询问 JRuby 或 Groovy ,虽然我知道他们会为此工作。

编辑: 抱歉(Ruby 太多了!)...looperTracks 属于 LooperTrack[]LooperTrack 实现 Looper

最佳答案

您至少可以利用这样一个事实,即您可以使用另一个集合作为基值来构造一个集合。根据docs :

Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator. The ArrayList instance has an initial capacity of 110% the size of the specified collection.

这意味着无需调整大小就可以为this留出空间。

List<Looper> allLoopers = new ArrayList<Looper>(looperTracks);
allLoopers.add(this);

for (Looper looper : allLoopers) {
    // Finally! I have a looper

关于java - 缩短 Java 代码的语言技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2176459/

相关文章:

java - Java中的priorityQueue顺序?

java - 为什么 SparseIntArray 不实现 Map<Integer, Integer>?

javascript - 如何在Android中添加通知徽章计数?

java - Android 应用程序从长时间空闲状态恢复时崩溃

c++ - 我是否需要为 C++ 中的每个函数实现指定类

mysql - 为什么带有子查询的 MySQL UPDATE 表现得很奇怪?

java - 双向链表,在Java中的给定节点之前插入

java - 如何参数化Comparable接口(interface)?

javascript - jquery 函数在引号中的单个空格后工作

java - java集合接口(interface)中的继承