2013-02-11 116 views
1

我正在寻找简单的字节FiFo缓冲区。我必须放置并获取一个字节或数组。但我可以把每一个单字节和数组,反之亦然。
任何想法或示例代码来帮助我?Android/Java简单的FiFO缓冲区

+0

请参阅http://docs.oracle.com/javase/tutorial/collections/interfaces/queue.html – 2013-02-11 14:34:29

回答

5

您可以使用LinkedList作为队列:

Queue<String> qe=new LinkedList<String>(); 

    qe.add("b"); 
    qe.add("a"); 
    qe.add("c"); 
    qe.add("e"); 
    qe.add("d"); 

    Iterator it=qe.iterator(); 

    System.out.println("Initial Size of Queue :"+qe.size()); 

    while(it.hasNext()) 
    { 
     String iteratorValue=(String)it.next(); 
     System.out.println("Queue Next Value :"+iteratorValue); 
    } 

    // get value and does not remove element from queue 
    System.out.println("Queue peek :"+qe.peek()); 

    // get first value and remove that object from queue 
    System.out.println("Queue poll :"+qe.poll()); 

    System.out.println("Final Size of Queue :"+qe.size()); 

如果你也想添加的优先级,你可以使用一个PriorityQueue

如果你需要它是线程安全的使用ConcurrentLinkedQueue

另外,正如@Leonidos所说,您可以使用ByteBuffer您需要低级I/O,但要小心。

如果您需要任何关于如何使用它们的说明,请随时对帖子发表评论。

2

如果您进行密集型I/O,您最好根据自己的需求改编ByteBuffer。它工作速度非常快,允许写入和读取单字节数据或字节数组。 ByteBuffer有时很棘手,要小心)