【发布时间】:2015-01-15 11:23:01
【问题描述】:
我正在寻找在运行时更改对象(或变量)的具体类的(开源)程序(或算法)的真实示例。
Java 中此类行为的一个示例可能类似于下面的代码片段。
这里,LinkedList 在频繁插入和/或删除的上下文中表现良好,被更改为ArrayList,在随机访问和迭代的上下文中表现良好。
List myList = new LinkedList();
/* Lots of inserts */
...
myList = new ArrayList( myList ); // 'change' into different class
/* Lots of iteration */
...
上面的 Java 示例在 LinkedList 和 ArrayList 之间变化
为了性能。
但是,任何语言、任何数据结构、使用任何技术*以及出于任何原因的示例都是受欢迎的。
*技术:简单如上例,或
在 SmallTalk 中使用 become:,在 Python 中使用 __class__,或者...
【问题讨论】:
-
一般来说,关于图书馆的问题在这里是题外话。我也无法理解你的问题背后的目的,因为很明显你明白这样做有什么好处,以及如何从你的例子中做到这一点。
-
我不是在寻找库,我在寻找“示例代码”,即程序员更改对象的数据结构/类的其他场景。我的问题背后的目的是,我需要证明这是一种足够常见的模式,可以为其提供语言抽象。
-
我经常在初始化阶段动态创建数组并使用 ArrayList 这样做,然后我知道不会发生进一步的变化我将它转换为一个普通的旧数组以减少内存开销并提高性能位。
-
@MrSmith42 这对我的学习非常重要!这是私有软件还是公共软件?您是否有可能向我提供这些项目的指针?
标签: java performance algorithm data-structures