我想知道是否有一种数据结构可以像OberservableCollection那样在C#中使用某种类型的数据。
例:
在C#里我可以说..。
ObservableCollection<Beer> Beer = new ObservableCollection<Beer>();
Beer.add("Bud"); <br>
Beer.add("Coors");假设这类啤酒是制造出来的,我们可以改变酒精含量,这样
Beer[1].content = 5;我想知道是否有人知道这样的数据结构/s是否也适用于Java。
我是一个C#程序员,不是一个Java程序员,所以我只是好奇。而且,它必须能够接受一个自定义类型,而不是泛型。
发布于 2009-10-11 20:39:41
org.apache.commons.events.observable 类ObservableCollection
发布于 2013-05-09 18:49:34
可观察的数据结构(ObservableList、ObservableMap等)包含在Oracle 7u6+中,作为JavaFX项目的一部分。OpenJDK项目为OpenJFX提供了相应的库。
下面是关于使用JavaFX集合的教程。
以及使用链接教程中的JavaFX可观察列表的一些示例代码:
import java.util.List;
import java.util.ArrayList;
import javafx.collections.*;
public class CollectionsDemo {
public static void main(String[] args) {
// Use Java Collections to create the List.
List<String> list = new ArrayList<String>();
// Now add observability by wrapping it with ObservableList.
ObservableList<String> observableList = FXCollections.observableList(list);
observableList.addListener(new ListChangeListener() {
@Override public void onChanged(ListChangeListener.Change change) {
System.out.println("Detected a change! ");
}
});
// Changes to the observableList WILL be reported.
// This line will print out "Detected a change!"
observableList.add("item one");
// Changes to the underlying list will NOT be reported
// Nothing will be printed as a result of the next line.
list.add("item two");
System.out.println("Size: "+observableList.size());
}
}发布于 2009-10-12 08:26:44
如果您希望观察您的列表,即当列表更改时通知您,您可以使用釉表。
如果您只想修改存储在列表中的对象,则可以使用List.get(int指数)或迭代列表来获取对象。
如果要在将String存储到列表中时自动创建Beer对象,则可能需要编写自己的简单列表包装器。
https://stackoverflow.com/questions/1551681
复制相似问题