繁体   English   中英

将ArrayList转换为LinkedList

[英]Convert ArrayList to LinkedList

如果我想将此实现从ArrayList更改为LinkedList ,我只需要更改

ArrayList<Character> characters = new ArrayList<Character>();

LinkedList<Character> characters = new List<Character>();

或者我该怎么做?

ArrayList<Character> characters = new ArrayList<Character>();
try {
    while((str = bufferedReader.readLine()) != null){
        char [] characterArray = str.toCharArray();

        for (int i = 0; i <  characterArray.length; i++){

            characters.add(characterArray[i]);
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}
char [] patternArray = phrase.toCharArray();
ArrayList<Character> pattern = new ArrayList<Character>();
for (int i = 0; i <  patternArray.length; i++) {

    pattern.add(patternArray[i]);
}

这段代码很好地说明了为什么对接口进行编程是一件好事。 您继续使用以下声明模式:

ArrayList<Character> characters = new ArrayList<Character>();

如果要使characters成为链接列表,则必须在两个位置进行更改。 如果您使用接口名称进行声明,例如

List<Character> characters = new ArrayList<Character>();

您的其余代码将继续工作,但您只需进行一次更改即可转换为LinkedList

List<Character> characters = new LinkedList<Character>();

pattern变量的声明也是如此。

它太慢了,占用了太多内存

当然可以! 长链表会占用更多的内存,因此将它们用于逐个字符表示是不切实际的。 通常,仅当您处理少量短字符串时,才可以将字符串转换为字符列表。 在其他情况下,如果需要可变性,最好使用String对象或StringBuilder对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM