【Java】补充知识点——Arrays.asList雷区/list.remove(int)方法/加减与位运算优先级/流特性求最大最小值...

目录

关于Arrays.asList方法的小小雷区

toCharArray

字符串排序重构技巧

ArrayList的remove中传入整形(int/Integer)

小小的优先级雷区(加减与位运算)

Java8流特性寻找数组最大/最小值

 

 

 

关于Arrays.asList方法的小小雷区

今天被这句代码卡了好久,按理说给ArrayList的构造函数传入List集合就行了

int[] arr = {1, 2, 3, 4, 5};
List<Integer> remainDays = new ArrayList<>(Arrays.asList(arr));

结果却报错

查了一下原来是因为Arrays.asList方法不能传入基本数据类型

解决方法是先将int[ ] 转化成 Integer[ ]

Integer[] tempArr = Arrays.stream(days).boxed().toArray(Integer[]::new);
List<Integer> remainDays = new ArrayList<>(Arrays.asList(tempArr));

 
 

toCharArray

Character[] chars = s.toCharArray();		//(✘) 
char[] chars = s.toCharArray();				//(✔)

toCharArray方法返回的类型是char[]

 
 

字符串排序重构

比如将字符串"fate"排序为"aeft"

char[] arr = s.toCharArray();
Arrays.sort(arr);
s = String.valueOf(arr);

 
 

ArrayList的remove中传入整形(int/Integer)

int n = 3;
list.remove(n);	// 按下标删除

Integer n = 3;
list.remove(n);	// 内容删除

源码分析:

E remove(int index);			// 重载1
boolean remove(Object o);		// 重载2

 
 

小小的优先级雷区

3 + 1 << 2

想当然的认为位运算(<<>>)要比普通加减(+-)要优先,毕竟更高级…

然而,正确的认知应该是:(+-)> (<<>>

补充:(++--)必然是最高的;其他位运算(^&)更低更低

 
 

Java8流特性寻找数组最大/最小值

int[] nums = {1, 9, 2, 8, 3, 7, 4, 6, 5};

int min = Arrays.stream(nums).min().getAsInt();
int max = Arrays.stream(nums).max().getAsInt();

 
 
 
 

 
 
 
 

 
 
 
 

M o r e . . . More... More...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值