java中具有不同数据类型的队列

java中具有不同数据类型的队列,java,data-structures,Java,Data Structures,我想用java实现包含不同数据类型的FIFO队列。我还需要知道是否可以将数组存储为队列中的一种类型。我只需要在队列中存储字符串和字符串数组。有什么帮助吗 thanx记住数组是java中的java.lang.Objects。因此,以下方法很好: Queue<Object> queue = new LinkedList<Object> (); queue.add("string0"); queue.add(new String[] {"string1"

我想用java实现包含不同数据类型的FIFO队列。我还需要知道是否可以将数组存储为队列中的一种类型。我只需要在队列中存储字符串和字符串数组。有什么帮助吗


thanx

记住数组是java中的java.lang.Objects。因此,以下方法很好:

    Queue<Object> queue = new LinkedList<Object> ();
    queue.add("string0");
    queue.add(new String[] {"string1", "string2"});
Queue Queue=newlinkedlist();
添加(“string0”);
添加(新字符串[]{“string1”,“string2”});
但是请记住,迭代此集合可能需要使用instanceof。您最好将所有条目设置为字符串数组,而只设置大小为1的单个字符串数组。这样,您的迭代逻辑变得更容易

    Queue<String[]> queue = new LinkedList<String[]> ();
    queue.add(new String[] {"string0"});
    queue.add(new String[] {"string1", "string2"});
    for (String[] nextArray : queue) {
        for (String nextString : nextArray) {
            System.out.println("nextElement: " + nextString);
        }
    }
Queue Queue=newlinkedlist();
add(新字符串[]{“string0”});
添加(新字符串[]{“string1”,“string2”});
for(字符串[]下一个数组:队列){
for(字符串nextString:nextArray){
System.out.println(“nextElement:+nextString”);
}
}

记住数组是java中的java.lang.Object。因此,以下方法很好:

    Queue<Object> queue = new LinkedList<Object> ();
    queue.add("string0");
    queue.add(new String[] {"string1", "string2"});
Queue Queue=newlinkedlist();
添加(“string0”);
添加(新字符串[]{“string1”,“string2”});
但是请记住,迭代此集合可能需要使用instanceof。您最好将所有条目设置为字符串数组,而只设置大小为1的单个字符串数组。这样,您的迭代逻辑变得更容易

    Queue<String[]> queue = new LinkedList<String[]> ();
    queue.add(new String[] {"string0"});
    queue.add(new String[] {"string1", "string2"});
    for (String[] nextArray : queue) {
        for (String nextString : nextArray) {
            System.out.println("nextElement: " + nextString);
        }
    }
Queue Queue=newlinkedlist();
add(新字符串[]{“string0”});
添加(新字符串[]{“string1”,“string2”});
for(字符串[]下一个数组:队列){
for(字符串nextString:nextArray){
System.out.println(“nextElement:+nextString”);
}
}

正如@Melv所指出的,您可以简单地使用
对象的
队列


但是使用
对象
意味着放弃类型安全性,被迫使用
instanceof
操作符。另一种方法是使用
队列
。每当您需要插入单个
字符串时,只需推送单个元素
字符串
数组(即
队列.offer(新字符串[]{element})
)。

正如@Melv所指出的,您可以简单地使用
对象的
队列


但是使用
对象
意味着放弃类型安全性,被迫使用
instanceof
操作符。另一种方法是使用
队列
。无论何时需要插入单个
字符串
,只需推送单个元素
字符串
数组(即
队列.offer(新字符串[]{element})
)。

在数据结构中使用不同类型会使使用它更困难,更容易出错

在这种情况下,最好有一些包装器,使所有访问您的工作以相同的方式

如果您有一个自然的域类来保存密钥中的值,请尝试更好地了解您的域,以便了解您。(您想在队列中放入什么?消息、请求、什么类型的消息或请求等)


否则,创建一个不可变类来封装队列可以接受的不同类型,即它应该接受的每个类型都有一个不同的构造函数。如果您开始对每种情况都有更多的行为,那么提取层次结构就是您的朋友:)这样您的域类就可以以自然的方式发展。

在数据结构中使用不同的类型将使使用它更加困难和容易出错

在这种情况下,最好有一些包装器,使所有访问您的工作以相同的方式

如果您有一个自然的域类来保存密钥中的值,请尝试更好地了解您的域,以便了解您。(您想在队列中放入什么?消息、请求、什么类型的消息或请求等)

否则,创建一个不可变类来封装队列可以接受的不同类型,即它应该接受的每个类型都有一个不同的构造函数。如果您开始对每种情况都有更多的行为,那么提取层次结构就是您的朋友:)这样您的域类就可以自然地演化