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

国外设计网站app有哪些商城网站都有什么功能

国外设计网站app有哪些,商城网站都有什么功能,网络认证,南软科技网站开发1. 概述 有时在Java中,为了方便,我们需要创建一个小列表或将数组转换为列表。Java 为此提供了一些辅助方法。 在本文中,我们将比较初始化小型临时数组的两种主要方法:List.of()和 Array.asList()。 2. Arrays.asList() Java 自…

在这里插入图片描述

1. 概述

有时在Java中,为了方便,我们需要创建一个小列表或将数组转换为列表。Java 为此提供了一些辅助方法。

在本文中,我们将比较初始化小型临时数组的两种主要方法:List.of()和 Array.asList()。

2. Arrays.asList()

Java 自1.2版本引入的Arrays.asList(),从而简化了List对象的创建,该对象是Java Collections Framework的一部分。它可以将数组作为输入的同时并创建所提供数组的List对象。
方法源码:

public static <T> List<T> asList(T... a) {return new ArrayList<>(a);
}

说白了就是拿参数直接new了一个对象,和自己创建一个数组是一样一样的。

示例:

Integer[] array = new Integer[]{1, 2, 3, 4,5};
List<Integer> list = Arrays.asList(array);MatcherAssert.assertThat("匹配项不相等",list, Matchers.containsInAnyOrder(1,2,3,4,5));

创建一个简单的整数列表非常容易。

2.1. 返回列表上不支持的操作

asList()方法返回一个固定大小的列表。因此,添加和删除新元素都会抛出UnsupportedOperationException。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Assert.assertThrows("新增Item",UnsupportedOperationException.class, () -> list.add(6));List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Assert.assertThrows("删除Item",UnsupportedOperationException.class, () -> list.remove(1));

2.2. 使用数组

我们需要注意的是,列表不会创建输入数组的副本。相反,它使用List接口包装原始数组。因此,对数组的更改也会反映在列表上:

Integer[] array = new Integer[]{1,2,3};
List<Integer> list = Arrays.asList(array);
array[0] = 1000;
MatcherAssert.assertThat("list.get(0)的结果不等于1000",list.get(0),Matchers.equalTo(1000));

2.3. 更改返回列表

另外,Arrays.asList()返回的列表是可变的。也就是说,我们可以更改列表的各个元素:

List<Integer> list = Arrays.asList(1, 2, 3, 4);
list.set(1, 1000);
MatcherAssert.assertThat("list.get(0)的结果不等于1000",list.get(0),Matchers.equalTo(1000));

最终,这可能会导致不良的副作用,从而导致难以发现的错误。当提供数组作为输入时,列表上的更改也将反映在数组上:

Integer[] array = new Integer[]{1, 2, 3};
List<Integer> list = Arrays.asList(array);
list.set(0,1000);
assertThat(array[0]).isEqualTo(1000);

小结:使用Arrays.asList()创建的列表,可以对内容值进行更改,但是不能对列表的长度进行更改。

我们看看另一种创建列表的方法。

3. List.of()

与数组asList()方法相反,在Java 9 中引入了一个更方便的新的方法:List.of()。它将创建不可修改的List对象的实例:

Integer[] array = new Integer[]{1, 2, 3, 4,5};List<Integer> list = List.of(array);MatcherAssert.assertThat("匹配项不相等",list, Matchers.containsInAnyOrder(1,2,3,4,5));

3.1. 与Arrays.asList()的区别

与Arrays.asList()的主要区别在于List.of ()返回一个不可变列表,该列表是所提供的输入数组的副本 。因此,对原始数组的更改不会反映在返回的列表中:

Integer[] array = new Integer[]{1, 2, 3, 4, 5};
List<Integer> list = List.of(array);
array[0] = 1000;
MatcherAssert.assertThat("list.get(0)的值不为1",list.get(0),Matchers.equalTo(1));

此外,我们无法修改列表的元素。如果我们尝试这样做,它将抛出UnsupportedOperationException:

List<String> list = List.of(1, 2, 3, 4, 5);
assertThrows(UnsupportedOperationException.class, () -> list.set(1, 6));

3.2. 空值

我们还应该注意List.of()不允许空值作为输入,并且会抛出NullPointerException:

assertThrows(NullPointerException.class, () -> List.of(1, null, 2));

4。结论

Arrays.asList()返回由指定数组支持的固定大小列表。对数组所做的更改将在返回的列表中可见,对列表所做的修改将在数组中可见。返回的列表是Serializable的,并实现了RandomAccess。
List.of()返回包含任意数量元素的不可修改列表。另外,此方法还接受单个数组作为参数。结果列表的元素类型将是数组的组件类型,列表的大小将等于数组的长度。要使用作为数组的单个元素创建列表,请执行以下操作:

String[] array = ... ;  
List<String[]> list = List.<String[]>of(array);

这将导致List.of(E)方法被调用。

http://www.yayakq.cn/news/514608/

相关文章:

  • php下载站源码凡科建站收费价目表
  • 绵阳网站建设哪家好深圳保障性住房申请条件
  • 隆昌市住房和城乡建设厅网站hao123手机浏览器
  • 网站建设有哪些软件有哪些做国际网站怎么发货
  • 嘉兴公司网站制作百度知道官网入口
  • 网站好友邀请链接生成 php网站建设与管理培训方案
  • 亿藤互联网站建设开发河南安阳区号
  • 一个做品牌零食特卖的网站亚马逊网站建设进度计划书
  • 网页设计国外设计欣赏网站py网站开发视频教程
  • 厦门杏林建设企业网站网站建设 自查表
  • 网站建设类课题的研究方法网页制作中网站名称怎么做
  • 做网站Linux湖北省建设厅网站a群
  • 河南便宜网站建设做的网站怎么放视频
  • 怎样做网络推广软件系统优化游戏性能的软件
  • 网站做到赣州第一名要多少钱设计公司网站模板
  • 上海湖南网站建设优秀网页欣赏
  • 广东网站制作报价惠州网站建设排名
  • 国内简约网站东莞网站seo
  • 廊坊做网站的企业哪家好万远翔网站建设
  • js代码 嵌入网站门户网站改版建议
  • 制作快递网站wordpress 连接微博
  • 宁波网站开发公司怎么样有做网站维护的
  • 上海电子商务网站建设网站开发公司+重庆
  • 接网站建设_网站设计做暧暧网站在线
  • 楚雄 公司 网站seo自动优化软件
  • 做像58同城这样的网站能用mysql数据库吗搜索引擎优化的定义是什么
  • 网站开发中标签栏的图标一般都在那个文件中写代码网站开发技术可以做什么工作
  • 交互设计个人网站网站 seo优化
  • 网站建设的总体设计思想企业产品推广平台
  • 如何给公司做一个网站外包公司员工是否受劳动法保护