当前位置: 首页 > news >正文

一流的赣州网站建设做书app下载网站有哪些内容

一流的赣州网站建设,做书app下载网站有哪些内容,高端品牌网站建设专人一对一服务,工装公司排行榜Arrays.asList() 和 Collections.singletonList() 概述 List 是我们使用Java时常用的集合类型。众所周知,我们可以轻松地在一行中初始化列表。例如,当我们想要初始化一个只有一个元素的List时,我们可以使用Arrays.asList(&#…

Arrays.asList() 和 Collections.singletonList()

概述

  • List 是我们使用Java时常用的集合类型。
  • 众所周知,我们可以轻松地在一行中初始化列表。例如,当我们想要初始化一个只有一个元素的List时,我们可以使用Arrays.asList()方法或 Collections.singletonList()方法。
  • 在本教程中,我们将讨论这两种方法之间的差异。然后,为简单起见,我们将使用单元测试断言来验证某些操作的行为是否符合预期。

Arrays.asList()方法

  • 首先,Arrays.asList()方法返回一个固定大小的列表。

  • 任何结构更改都将引发UnsupportedOperationException,例如,向列表中添加新元素或从列表中删除元素。现在,让我们通过测试来检查它:

  • List<String> arraysAsList = Arrays.asList("ONE");
    assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> arraysAsList.add("TWO")
    );
    
  • 如果我们试一试,测试就会通过。在上面的代码中,我们使用Assertj 的异常断言来验证当我们尝试向列表中添加新元素时是否抛出UnsupportedOperationException。

  • 即使我们不能在列表中调用add() 或remove()操作,我们也可以使用set() 方法更改列表中的元素:

  • arraysAsList.set(0, "A brand new string");
    assertThat(arraysAsList.get(0)).isEqualTo("A brand new string");
    
  • 这一次,我们使用新的String对象设置列表中的元素。如果我们执行测试,它就会通过。

  • 最后,让我们讨论Arrays.asList() 方法的数组和返回的列表之间的关系。

  • 正如方法名称所暗示的那样,此方法使数组用作列表。让我们了解“使数组作为列表工作”是什么意思。

  • Arrays.asList() 方法返回一个List对象,该对象由给定数组支持。也就是说,该方法不会将元素从数组复制到新的List对象。相反,该方法在给定数组上提供列表视图。因此,我们对数组所做的任何更改都将在返回的列表中可见。同样,对列表所做的更改也将在数组中可见:

  • String[] theArray = new String[] { "ONE", "TWO" };
    List<String> theList = Arrays.asList(theArray);
    //changing the list, the array is changed too
    theList.set(0, "ONE [changed in list]");
    assertThat(theArray[0]).isEqualTo("ONE [changed in list]");
    //changing the array, the list is changed too
    theArray[1] = "TWO [changed in array]";
    assertThat(theList.get(1)).isEqualTo("TWO [changed in array]");
    
  • 测试通过。因此,对于数组和返回的列表,如果我们在一侧进行了一些更改,则另一侧也会更改。

Collections.singletonList()方法

  • 首先,singletonList() 方法返回的列表只有一个元素。与Arrays.asList() 方法不同,*singletonList()* 返回一个不可变的列表

  • 换句话说,不允许在singletonList() 返回的列表上进行结构性和非结构性更改。测试可以快速说明这一点:

  • List<String> singletonList = Collections.singletonList("ONE");
    assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> singletonList.add("TWO")
    );
    assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> singletonList.set(0, "A brand new string")
    );
    
  • 如果我们运行测试,它就会通过。因此,无论我们是向列表中添加元素还是更改列表中的元素,它都会抛出UnsupportedOperationException。

  • 值得一提的是,如果我们看一下返回的列表类的源代码,与其他List实现不同,返回列表中的单个元素不存储在数组或任何其他复杂的数据结构中。相反,列表直接保存元素对象:

  • private static class SingletonList<E> extends AbstractList<E> implements RandomAccess, Serializable {...private final E element;SingletonList(E obj) {element = obj;}...
    }
    
  • 因此,它将占用更少的内存。

简短总结

  • 最后,让我们在一个表中总结*Arrays.asList() 方法和 Collections.singletonList()*方法的特征,以获得更好的概述:
  • 在这里插入图片描述

结论

  • 在这篇快速文章中,我们讨论了Arrays.asList() 方法和 Collections.singletonList()方法。
  • 当我们想初始化一个只有一个元素的固定大小的列表时,我们可以考虑使用Collections.singletonList() 方法。但是,如果需要更改返回列表中的元素,我们可以选择Arrays.asList() 方法。
http://www.yayakq.cn/news/890654/

相关文章:

  • 吉安建站公司厦门网站建设找哪家比较好
  • 甘肃做网站的公司销售平台网站建设
  • 厦门做手机网站公司做访问量高的网站
  • 完整网站开发看什么书济南软件开发定制
  • 宁波专门做网站怎么做网站站长
  • 电子商务网站建设认识wordpress+特色缩略图
  • 网站服务器 2核网站开发客户对话
  • 怎么备份wordpress网站开发助手app
  • ci策划 网站开发网站的下载链接怎么做
  • 网站界面结构惠安规划局建设局网站
  • 网站建设整个过程300网站建设
  • 国外做logo的网站如何做好网站内更新
  • 网站策划的工作要求湛江网站制作网站
  • 贵阳网站建设方案策划文网站建设
  • 登录网站定制浙江建筑网站
  • 网站建设公司价php网站开发背景介绍
  • 梅州公司做网站做网络推广的公司
  • 网站建设与服务费是什么服务抖音代运营服务方案
  • 广州市官网网站建设公司怎样在网做旅游网站
  • 六安建设厅网站怎么做网站啊
  • 做结婚请柬网站有那些广州天河娱乐场所最新通知
  • vps新建网站wordpress帖子增强
  • 高校网站建设工作总结自媒体平台注册入口官网
  • 淘宝客的网站是如何建设的湖南营销型网站建设磐石网络
  • 制作网站品牌公司简介建设银行 公户 该网站使用过期的
  • 搬瓦工做网站稳定吗营销网站运营的基本环节
  • 模板网站开发推荐wordpress弹窗下载
  • 阿里云虚拟主机怎么建立网站房地产开发公司的简介
  • 做直播网站需要学什么软件有哪些怎么做网站访问被拒绝
  • 国外seo比较好的博客网站网站建设前的分析