当前位置: 首页 > 面试题库 >

ArrayDeque中的addfirst和offerFirst方法之间的差异

何安宜
2023-03-14
问题内容

已经尝试了一个示例程序来理解Java 6
addFirstofferFirst方法之间的区别ArrayDeque。但是它们似乎是相同的,有什么建议吗?

public void interfaceDequetest()
{
        try{
        ArrayDeque<String> ad = new ArrayDeque<String>();
        ad.addFirst("a1");
        ad.offerFirst("o1");
        ad.addFirst("a2");
        ad.offerFirst("02");
        ad.addFirst("a3");

        System.out.println("in finally block");

        for (String number : ad){
            System.out.println("Number = " + number);
        }
}

问题答案:

区别在于,由于队列容量限制,添加失败时会发生什么:

  • .addFirst() 引发(未经检查的)异常,
  • .offerFirst()返回false

在实现的中记录了Deque这一点ArrayDeque

值得注意的是,ArrayDeque它没有容量限制,因此基本上.addFirst()不会抛出异常(并且.offerFirst()总是会返回true);例如,这LinkedBlockingQueue与具有初始容量的建筑物不同。



 类似资料:
  • 我们已经试用了一个示例程序,以了解Java 6的中和方法之间的区别。但他们似乎是一样的,有什么建议吗?

  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 我来自Java背景,刚接触Scala。 我正在使用Scala和Spark。但是我不明白我在哪里使用和。 有人能告诉我在哪种情况下我需要使用这两个操作符吗?和之间有什么区别吗?

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?

  • 我正在尝试了解java序列化机制,我几乎没有疑问 请回答以下有关java序列化的问题: < li >为什么使用< code > OOS . defaultwriteobject();?根据这篇文章,这是为了向后兼容。我不太明白它是怎么做到的。序列化的一个不兼容的变化是在新版本中删除一个字段。这意味着旧版本将不得不设置缺省值,这些值有时对用户无效。这与新版本添加新字段并允许设置缺省值有何不同? <

  • client.query和Table.query之间有什么区别 在这种情况下,client.query应具有比Table.query更高的权限,反之亦然 在AWS留档我遇到了几个点其中之一 如果满足查询条件的项目总数超过结果集大小限制1 MB,则查询将停止,并将结果返回给用户,并使用LastEvaluatedKey元素在后续操作中继续查询。与扫描操作不同,查询操作从不同时返回空结果集和LastEv