1

我正在尝试在 ArrayDeque 中添加一些字符串,但首先我必须检查它是否已经填满了该索引。我该怎么做?

我有这个:

 public void processarEntrada(String n){

    for ( int i = 0; i <= 3; i++){
        planta.add(n);

在添加任何内容之前,每个索引都必须为空

4

3 回答 3

1

这是一个很好的例子。

import java.util.ArrayDeque;
import java.util.Iterator;

public class ArrayDequeTest {
    public static void main(String... args){

        ArrayDeque<String> aq= new ArrayDeque<String>();
        aq.add("A");
        aq.add("B");
        aq.add("C");

        //offerFirst-adds elements at the front of the ArrayDeque 
        aq.offerFirst("D");

        //offerLast inserts the element at the last of ArrayDeque 
        aq.offerLast("E");

        Iterator<String> itr= aq.iterator();
        while(itr.hasNext()){ 
            System.out.println(itr.next());
        }

    }
于 2017-05-22T16:59:40.157 回答
1

ArrayDeque Java 文档

数组双端队列没有容量限制;它们会根据需要增长以支持使用。

add(E e)
在此双端队列的末尾插入指定的元素。

add方法将创建一个新索引并添加该索引的元素。

在添加任何内容之前,每个索引都必须为空

实现这一点不需要额外的工作。

于 2017-05-22T17:21:46.160 回答
0

我很难完全理解这个问题。我的理解是,只有在数组不包含字符串的情况下,您才希望将其添加到 ArrayDeque 中。

查看 Java 文档: public boolean contains(Object o)

如果此双端队列包含指定元素,则返回 true。更正式地说,当且仅当此双端队列包含至少一个元素 e 使得 o.equals(e) 时才返回 true。

所以我会检查它是否在 ArrayDeque 中,然后添加它。

if(! planta.contains(theString)) planta.offer(theString);

于 2017-05-22T16:54:32.613 回答