文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中包装类和Arrays类的详细介绍

2022-12-14 06:03

关注

包装类

包装类其实就是8种基本数据类型对应的引用类型。

基本数据类型引用数据类型
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean

为什么需要包装类?

Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型。

后面的集合和泛型其实也只能支持包装类型,不支持基本数据类型。

自动装箱:

基本类型的数据和变量可以直接赋值给包装类型的变量。

public static void main(String[] args) {
    int num1 = 10;

    // 自动装箱(将int基本数据类变量赋值给包装类型变量)
    Integer res1 = num1;
    System.out.println(res1);
}

自动拆箱:

包装类型的变量可以直接赋值给基本数据类型的变量。

public static void main(String[] args) {
    Integer num2 = 100;

    // 自动拆箱(将包装类型变量赋值给基本类型变量)
    int res2 = num2;
    System.out.println(res2);
}

包装类的特有功能:

包装类的变量的默认值可以是null,容错率更高, 而基本类型不可以。

public static void main(String[] args) {
    Integer num3 = null;
}

可以把基本类型的数据转换成字符串类型(用处不大)

  • 调用toString()方法得到字符串结果。
  • 或者调用Integer.toString(基本类型的数据)。
public static void main(String[] args) {
    Integer number = 100;
    // 方式一
    String result1 = number.toString();
  	// 方式二
  	String result2 = Integer.toString(101);
    // 方式三: 最简单常用
    String result3 = number + "";
  
    System.out.println(result1 + 1); // 1001
    System.out.println(result2 + 1); // 1011
    System.out.println(result3 + 2); // 1002
}

可以把字符串类型的数值转换成真实的数据类型(非常有用)

  • teger.parseInt(“字符串类型的整数”)
  • Double.parseDouble(“字符串类型的小数”)。
public static void main(String[] args) {
    String strNum1 = "123";
    String strNum2 = "12.123";

    // 字符串转整数
    int intNum = Integer.parseInt(strNum1);
    // 字符串转小数
    double doubleNum = Double.parseDouble(strNum2);

    System.out.println(intNum + 1); // 124
    System.out.println(doubleNum + 1); // 13.123
}

将字符串类型的数字转为真实的数据, 我们也可以调用包装类的valueOf方法

public static void main(String[] args) {
    String strNum1 = "123";
    String strNum2 = "12.123";

    // 字符串转整数
    int intNum = Integer.valueOf(strNum1);
    // 字符串转小数
    double doubleNum = Double.valueOf(strNum2);

    System.out.println(intNum + 1); // 124
    System.out.println(doubleNum + 1); // 13.123
}

小结:

包装类是什么,作用是什么?

基本数据类型对应的引用类型,实现了一切皆对象。

后期集合和泛型不支持基本类型,只能使用包装类。

包装类有哪些特殊功能?

可以把基本类型的数据转换成字符串类型(用处不大)

可以把字符串类型的数值转换成真实的数据类型(非常有用)

Arrays类

Arrays类的概述

数组操作工具类,专门用于操作数组元素的。

Arrays类的常用API

方法名说明
toString(类型[] a)返回数组的内容(字符串形式)
sort(类型[] a)对优质的数组默认进行升序排序
sort(类型[] a, Comparator<? super T> c)使用比较器对象自定义排序
binarySearch(int[] a, int key)二分搜索数组中的数据,存在返回索引,不存在返回-1

toString方法

public static void main(String[] args) {
    int[] arr = {10, 20, 30, 40, 0, 100};

    // 返回数组内容
    String res = Arrays.toString(arr);
    System.out.println(res); // [10, 20, 30, 40, 0, 100]
}

sort方法

public static void main(String[] args) {
    int[] arr = {20, 10, 900, 40, 0, 100};

    // 升序排序
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr)); // [0, 10, 20, 40, 100, 900]
}

binarySearch方法, 二分查找法搜索数组中的数据, 找到返回索引, 找不到返回-1

注意: 前提被查找的数组必须是排好序的

public static void main(String[] args) {
    int[] arr = {20, 10, 900, 40, 0, 100};
  
    // 升序排序
    Arrays.sort(arr);
    // 查找数组
    int index = Arrays.binarySearch(arr, 10);
    System.out.println(index); // 1
}

sort方法自定义规则:

sort方法第二个参数是Comparator, 设置Comparator接口对应的比较器对象,可以来自己定制比较规则。

注意: 自定义比较器对象只支持引用型类型的排序

如果认为左边数据大于右边数据, 返回正整数

如果认为左边数据小于右边数据, 返回负整数

如果认为左边数据等于右边数据, 返回0

默认的升序是o1 - o2; 降序是o2 - o1

public static void main(String[] args) {
    // 只支持引用类型, 因此定义包装类数据类型 
    Integer[] arr = {10, 0, 30, 50, 100, 67};

    // 调用sort方法, 降序
    Arrays.sort(arr, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2 - o1;
        }
    });

    System.out.println(Arrays.toString(arr)); // [100, 67, 50, 30, 10, 0]
}

总结

到此这篇关于Java中包装类和Arrays类的详细介绍的文章就介绍到这了,更多相关Java 包装类和Arrays类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯