• 【java】array和list常用小技巧和知识


    一些常用小技巧,持续更新

    1)array初始化非0值,fill

     int[] ans = new int[5];
     //快速填充数组初始值
     Arrays.fill(ans, -1);
    
    • 1
    • 2
    • 3

    2) array转list

    a. 首先可以直接用asList
    eg:
    Arrays.asList(strArray)
    PS:这种有个弊端的到的list并不能调用add
    
    b. so,再包一层
    通过asList转化后的list,再生成list
    ArrayList list = new ArrayList(Arrays.asList(strArray)) ;
    
    c. array通过stream转list , 一步到位,需要boxed
    List numList = Arrays.stream(nums).boxed().collect(Collectors.toList());
    numList.add(6); //可以add
    numList.stream().forEach(System.out::println);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3)list转array

    a. 直接调用toArray返回的是Object数组
    todo...
    
    • 1
    • 2

    4)一些长度

    a. 对于字符串获取长队是个方法length()
    b. 对于数组获取长度是个属性length
    c. Map、List和Set这些集合类使用size()
    
    • 1
    • 2
    • 3

    5)没有(item,index)=>{}

    替换方案:
    for循环获取index,然后再通过中括号或者get取
    或者forin的到item,再通过indexOf取下标
    
    • 1
    • 2
    • 3

    6)类型判断

    System.out.println(numList instanceof List);
    //等效于
    System.out.println(List.class.isInstance(numList));
    
    • 1
    • 2
    • 3

    7)System.arraycopy

    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    
    src:源数组;
    
    srcPos:源数组要复制的起始位置;
    
    dest:目的数组;
    
    destPos:目的数组放置的起始位置;
    
    length:复制的长度.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    8)list和array的排序反转

    无论是list还是array,内置的方法是对原值操作,返回为void

    a、list排序和反转

    Collections.sort
    Collections.reverse
    
    • 1
    • 2

    b、array的排序和反转

    Arrays.sort
    Array的reverse需要自己去实现,当然也可以先转List,再借助List的方法
    
    • 1
    • 2

    9)list和array的toString

    对于一些封装类和高级类型,直接可以用生成实例来直接,
    因为这类封装类本身已经继承并实现了toString方法
    而array需要借助于工具类Arrays.xxx去操作
    so:

    list可以直接在实例上toString
    list实例.toString();
    ---
    array需要借助工具类继承实现的toString方法来转化
    Arrays.toString(array实例)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    10)list和array的截取

    返回值为截取的类型,主要是起止节点,左闭右开

    a、首先是list的截取,list.subList

    List pre = new ArrayList<>(list.subList(0, mid));
    
    • 1

    b、然后是array的截取,Arrays.copyOfRange,也是实现在Arrays工具类上

    int[] a = new int[]{1,2,3,4,5};
    int[] b = Arrays.copyOfRange(a, 0, 2);
    
    • 1
    • 2
  • 相关阅读:
    【知识网络分析】引文网络(citation)
    基于ssm的学生综合测评管理系统047
    LeetCode377. 组合总和 Ⅳ
    【英语:基础进阶_核心词汇扩充】E5.常见词根拓词
    亚马逊英国站小风扇UKCA认证办理流程
    【计算机网络】Web服务器的配置
    力扣 8049. 判断能否在给定时间到达单元格
    枚举类的学习
    【STM32】SPI初步使用 读写FLASH W25Q64
    互联网Java工程师面试题·Java 面试篇·第三弹
  • 原文地址:https://blog.csdn.net/dangbai01_/article/details/128158941