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

企业数据查询网站seo人才网

企业数据查询网站,seo人才网,做外贸 用国内空间做网站,手机做网站1. 概述 列表是我们使用 Java 时常用的集合类型。 众所周知,我们可以轻松地用一行初始化一个List。例如,当我们想要初始化一个只有一个元素的List时,我们可以使用Arrays.asList()方法或Collections.singletonList()方法。 在本文中&#x…

在这里插入图片描述

1. 概述

列表是我们使用 Java 时常用的集合类型。

众所周知,我们可以轻松地用一行初始化一个List。例如,当我们想要初始化一个只有一个元素的List时,我们可以使用Arrays.asList()方法或Collections.singletonList()方法。

在本文中,我们将讨论这两种方法之间的差异。然后,为了简单起见,我们将使用单元测试断言来验证某些操作是否按预期运行。

2.Arrays.asList ()方法

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

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

List<String> arraysAsList = Arrays.asList("ONE");
Assert.assertThrows("新增Item",UnsupportedOperationException.class,() -> 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()方法的数组和返回的列表之间的关系。

顾名思义,该方法使数组作为 List工作。让我们了解“让数组像列表一样工作”意味着什么。

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

String[] theArray = new String[] { "ONE", "TWO" };
List<String> theList = Arrays.asList(theArray);
//改变列表,数组也会随之改变
theList.set(0, "ONE [changed in list]");
assertThat(theArray[0]).isEqualTo("ONE [changed in list]");//改变数组,列表也会随之改变
theArray[1] = "TWO [changed in array]";
assertThat(theList.get(1)).isEqualTo("TWO [changed in array]");

测试通过。因此,对于数组和返回的列表,如果我们在一侧进行了一些更改,则另一侧也会更改。

3. Collections.singletonList()方法

singletonList()方法返回的列表只有一个元素。

与Arrays.asList()方法不同,singletonList()返回一个不可变的 list。

换句话说,不允许对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;}...
}

因此,它需要更少的内存。

4. 总结

我们用表格总结一下Arrays.asList()方法和Collections.singletonList()方法的特点。

Arrays.asList()Collections.singletonList()
结构性变化不允许不允许
非结构性变化允许不允许
数据结构由数组支持直接握住元件

在这篇文章中,我们讨论了Arrays.asList()方法和Collections.singletonList()方法。

当我们想要初始化一个只有一个元素的固定大小列表时,我们可以考虑使用Collections.singletonList()方法。但是,如果需要更改返回列表中的元素,我们可以选择Arrays.asList()方法。

http://www.ritt.cn/news/12869.html

相关文章:

  • 中国建设银行网站缴费系统百度网盘帐号登录入口
  • 整形网站优化域名注册服务网站
  • wordpress中文企业模板下载以下哪个单词表示搜索引擎优化
  • 网络工程公司如何接单运城seo
  • dedecms做的网站如何上线营销推广方案包括哪些内容
  • 哪里可以做网站的河南网站建设哪里好
  • 潍坊做网站的企业网络推广软件
  • 福永公司网站建设搜索引擎优化搜索优化
  • 网站建设前期团队建设免费cms建站系统
  • 网站做app的软件有哪些河南seo外包
  • 经验分享的网站开发泉州网站seo外包公司
  • 现在网站开发语言德州百度推广公司
  • 做国外网站的公证要多少钱百度账号客服
  • 购物网站起名免费浏览网站推广
  • 一流的镇江网站优化百度指数上多少就算热词
  • 做网站一般注册商标哪个类指数基金投资指南
  • 怎么建设自己的网站新型网络营销方式
  • 杏坛网站建设黄冈网站建设收费
  • 湖南做网站价格百度推广开户公司
  • 做网站推广的公司发展前景百度指数的数据怎么导出
  • 上海地铁美女卖身求财称为支援商业网站建设宁波seo关键词优化报价
  • 政府网站集约化平台建设工作方案排名优化工具
  • 做网站 一年需要多少钱天津seo关键词排名优化
  • 怎么做游戏试玩网站营销网址
  • 做网站的注意点seo怎么做
  • 专业的无锡网站建设b站推广网站2024年
  • 网站建设报价表模板下载分析网站
  • 前端开发培训要多少钱沈阳沈河seo网站排名优化
  • 公司官方网站建设需要多少钱推广竞价的公司有哪些
  • 长安微网站建设seo在线培训机构排名