我开始在Android中开发并决定使用原生 java语言。
当开始使用新语言时,我倾向于创建一个代码库来创建具有相同名称的例程,这些例程执行与我已有的库中相同的功能。
F.i。在我的Classic Asp库中,我有一个IntToStr()函数,它相当于Delphi的IntToStr(),虽然我知道VBScript不需要这样的函数 - 它使我在不同语言中的代码更具可读性从而更容易在语言之间切换。
来自 Delphi背景,我在Delphi中有很多使用 TStringList 类的库代码。
Java中有什么相同的东西吗?或者你会如何解决这个问题?
答案 0 :(得分:4)
delphi StringList看起来就像一个键/值对列表。 Java具有键/值对集合(Map
)的结构,但实现TreeMap
和HashMap
不保持键的插入顺序。 custum Java数据类型的良好开端可能是:
public class TStringList { // unconventional Java name, but you like to keep the delphi names
private class Entry {
String key;
Object value; // to keep it flexible
}
private List<Entry> entries = new ArrayList<Entry>();
// add some constructors
// implement methods of delphis StringList
}
(注意:存根没有实现JCA接口(如List
),因为该类旨在模仿delphi类型而不是作为集合)
答案 1 :(得分:2)
这是一个简单的字符串列表吗?如果是,请改用泛型:
LinkedList<String> myStrings = new LinkedList<String>();
myStrings.add("hello");
String s = myStrings.get(0);
答案 2 :(得分:1)
这就是你需要的:
<强> org.apache.commons.collections.map.ListOrderedMap 强>
答案 3 :(得分:0)
我怀疑有一个确切的替换TStringList,因为它非常灵活,并且不对应于java Containers上的一个确切的数据结构类 - 实际上大多数TStringList的功能必须使用其他一些类来完成。 两年前,我在Java中实现了一个TStringList对象。 java中有能力可以帮助你的类。我不知道我是否还有这个来源,只是一个实验。