java 算法

一、集合与数组的转换

1、初始化一个固定大小的List :List<Integer> ali = Arrays.asList(1,2,3,4,5); 该ali内容可以修改,但是大小不可变

    如果要创建一个可变大小的List的话则可以如此表示:List<Integer> li = new ArrayList<>(ali); 那么li的内容和大小都可变

    如果要将该List转换为对应的数组可以使用:Integer[] values = li.toArray(new Integer[0]); 如果不加new Integer[0] 则返回的是Object[] 的类型;那么这里的0可以改为别的值么? 答案是可以的,如果改为比li长度小的数值则对结果没有影响,values的长度跟li的长度是一致的;如果改为比li的长度大的值则比li长的部分会设置为空

 

二、简单的算法

一些简单通用的算法都放在Collections中

1、min、max来查找数组中的最大值和最小值

2、对数组进行填充

    1、替换指定的内容:Collections.replaceAll(ali, 2, 3); 或者ali.replaceAll(a -> { return a == 2? 3:a; }); 将列表ali中的2都替换为3

    2、移除指定的内容:li.removeIf(a -> a == 3); 

    3、将数组填充为指定内容:Collections.fill(ali, 2); 将ali中的所有元素都设置为2

    4、将ali列表的内容拷贝到li中:Collections.copy(li, ali); 由于只是拷贝,所以这里要求ali.size() <= li.size()

    5、创建某个元素重复n次的数组: List<Integer> li = Collections.nCopies(6, 10); 则6个10,即:[10, 10, 10, 10, 10, 10]; 并且这里的li是不可变的(内容和长度)

3、对数组进行旋转

   Collections.rotate(ali, 2); 将ali的最后两个元素移到前面,前面的n-2个元素移到后面;假设ali=[1,2,3,4,5] 旋转之后变成[4,5,1,2,3]

4、取两个列表的交集

ali=[1,2,3,4,5] , li=[3,4,6,7] ; 则执行li.retainAll(ali); 之后返回的是[3,4]

posted @   LCAC  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示