【Java 小白菜入门笔记 2.2】常用的类和方法

2023-05-16

Array

Array 含有sort、fill、equals、BinarySearch等方法

import java.util.Arrays;
import java.util.Random;

public class ArraysDemo{
    public static void main(String[] args){
        int[] arr = new int[10];
        Arrays.fill(arr, 0);
        System.out.println("fill with 0 : " + Arrays.toString(arr));
        Random rand = new Random();
        for (int i = 0; i < arr.length; i++){
            arr[i] = rand.nextInt(101);
        }
        System.out.println("Refill with random : " + Arrays.toString(arr));
        arr[5] = 50;
        Arrays.sort(arr);
        System.out.println("Sort : " + Arrays.toString(arr));
        int ind = Arrays.binarySearch(arr, 50);
        System.out.println("Index of 50 : " + ind);
        int[] newArr = Arrays.copyOf(arr, arr.length);
        System.out.println("Copy right ? : " + Arrays.equals(arr, newArr));
    }
}

输出结果:

fill with 0 : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Refill with random : [13, 84, 8, 98, 79, 76, 73, 30, 31, 41]
Sort : [8, 13, 30, 31, 41, 50, 73, 79, 84, 98]
Index of 50 : 5
Copy right ? : true

注意:binarySearch只能用于已经排序的数组。如返回正数,为所在位置。如果找不到,则为负数,其绝对值表示这个数应该被插入的位置。

StringBuilder

StringBuilder是一个可以insert、delete、replace、append字符串中元素的一个可变的对象。内置了很多字符串操作的相关方法。StringBuilder可以通过toString方法转为String类型。下面是一个例子:

public class StringBuilderTest{
    public static void main(String[] args){
        StringBuilder s = new StringBuilder("I");
        s.append(" ML");
        s.insert(1, " love");
        String t = s.toString();
        System.out.println(t);
    }
}

输出为:

I love ML

Math

Math在java.lang中,实现了很多常用的数学函数,比如sin、cos等三角、反三角函数,以及ceil、floor、rint等不同的double取整方式,以及pow计算幂,以及random生成随机数等。
通过一个例子,来使用一下Math中的常见函数:

import java.lang.Math;

public class MathDemo{
    public static void main(String[] args){
        System.out.println(Math.ceil(6.66));
        System.out.println(Math.floor(6.66));
        System.out.println(Math.rint(6.66));
        System.out.println(Math.round(6.66));
        System.out.println(Math.abs(6.66));
        System.out.println(Math.sin(6.66));
        System.out.println(Math.atan(6.66));
        System.out.println(Math.pow(6.66, 2));
        System.out.println(Math.sqrt(6.66));
    }
}

输出结果:

7.0
6.0
7.0
7
6.66
0.36796051057238466
1.4217595363083344
44.3556
2.5806975801127883

注意:rint和round的区别在于,rint返回的仍是double,而round对于double返回的是long,对float返回int。都是返回最接近的整数值。

实验,random两个数,比较大小:

import java.lang.Math;

public class MathTest{
    public static void main(String[] args){
        double a = Math.random();
        double b = Math.random();
        double max = Math.max(a, b);
        System.out.println("random a is : " + a);
        System.out.println("random b is : " + b);
        System.out.println("maximum is : " + max);
    }
}

输出结果:

random a is : 0.5640893547983834
random b is : 0.4307469193802972
maximum is : 0.5640893547983834

System

System不能被实例化,只能访问static方法。常用的System.out.println就是System 的一个方法。
实验案例:

import java.util.Arrays;

public class SystemDemo{
    public static void main(String[] args){
        int[] a = {1, 2, 3, 4, 5};
        int[] b = {6, 7, 8, 9, 10};
        System.arraycopy(a, 1, b, 2, 3);
        System.out.println(Arrays.toString(b));
        System.out.println("Java Version is :" + System.getProperty("java.version"));
    }
}

输出结果:

[6, 7, 2, 3, 4]
Java Version is :1.8.0_131

Random

实验:输入一个m和一个n,其中m小于n,两者都是正整数,输出一个[m, n]范围内的随机数。

import java.util.Random;
import java.util.Scanner;

public class RandomTest{
    public static void main(String[] args){
        Scanner inp = new Scanner(System.in);
        int m = inp.nextInt();
        int n = inp.nextInt();
        Random rand = new Random();
        int ret = rand.nextInt(n - m + 1) + m;
        System.out.println(ret);
    }
}

输入输出为:

20
53
39

2020年7月8日00:58:49
北京 生命科学园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java 小白菜入门笔记 2.2】常用的类和方法 的相关文章

  • 超声波避障

    运行如下脚本 roslaunch dashgo bringup bringup smoother ob span class hljs preprocessor launch span 在另一个终端运行 rostopic span clas
  • 虚拟机VirtualBox安装Ubuntu14.04

    本教程的运行环境 xff1a Windows 7 虚拟机 VirtualBox xff0c Ubuntu 14 04 1 准备 下载 VirtualBox5 0版可以使用后面提供的OVA镜像直接导入 xff0c 镜像是ROS的集合环境 xf
  • 树莓派实现自主导航

    使用 Flash Lidar F4 激光雷达进行自主导航 树莓派的IP假设为192 168 11 100 该教程基于地图已经建好并保存的情况下 teb amcl demo launch 的 args 参数要与前面 gmapping demo
  • 键盘控制移动

    PathGo 导航模块的默认固定 IP 是 192 168 31 200 xff0c 默认用户名为eaibot 默认密码为 eaibot 1 不带陀螺仪的底盘驱动 打开一个终端 xff0c 运行以下命令 xff0c 启动底盘驱动 带平滑加减
  • Dashgo-D1 不带陀螺仪的建图导航

    PathGo 导航模块的默认固定 IP 是 192 168 31 200 xff0c 默认用户名为 eaibot xff0c 默认密码为 eaibot D1与F4的坐标系已经校准正确的情况下 扫描建图 打开一个终端 xff0c ssh登录导
  • Dashgo-D1 带陀螺仪的建图导航

    PathGo 导航模块的默认固定 IP 是 192 168 31 200 xff0c 默认用户名为 eaibot 默认密码为 eaibot D1与F4的坐标系已经校准正确的情况下 扫描建图 打开一个终端 xff0c ssh登录导航模块并启动
  • Dashgo-D1 多点连续导航

    PathGo 导航模块的默认固定 IP 是 192 168 31 200 xff0c 默认用户名为 eaibot xff0c 默认密码为 eaibot 地图已经建好并引用的情况下 第一种方式 打开一个终端 xff0c ssh登录导航模块 x
  • private static final long serialVersionUID = 1L

    很显然这行代码的意思是将SerialVersionUID的值定义为一个常量 xff0c 那这是干什么的呢 xff1f 解决这个问题 xff0c 首先要了解包含SerialVersionUID的Serializable接口是什么 xff1f
  • 【善用工具】程序性能分析Gperftools初探(libwind+pprof+Kcachegrind)

    善用工具 http blog csdn net aganlengzi article details 62893533 本文主要试用的gperftool相关介绍可见 https github com gperftools gperftool
  • PowerShell文本文件、Json文件资源的读取,修改

    PowerShell文件资源的读写 文本类文件的读取 xff1a Path 61 需要读取的文件路径 不加 Raw为逐行读取 xff0c 添加则为整个文件资源的读取 data 61 Get Content Path Path data 61
  • 串口参数详解:波特率,数据位,停止位,奇偶校验位

    串口通讯 9600波特率 数据格式是8 N 1 请问一秒可以传输多少个字节的数据 xff1f 9600 xff0c n 8 1 实际上 xff0c 在发送一个字节的时候 xff0c 除了需要发送8BIT数据外 xff0c 还需要发送1bit
  • 让我们了解OSD视频叠加相关信息

    什么是视频叠加 xff1f 视频叠加就是将图片和文字信息叠加到视频信号中 xff0c 如电视台的LOGO xff0c 电影的字幕 xff0c 电视机的菜单 xff0c 都是通过视频叠加的形式显示在视频图像中的 区别于用于专业影视编辑行业的字
  • RTSP/Onvif安防视频EasyNVR内核启动正常,但视频无法播放是什么原因?

    EasyNVR是基于RTSP Onvif协议的安防视频云服务平台 xff0c 可实现设备接入 实时直播 录像 检索与回放 云存储 视频分发 级联等视频能力服务 xff0c 可覆盖全终端平台 xff08 电脑 手机 平板等终端 xff09 x
  • 海康硬盘录像机接入RTSP/onvif协议安防视频平台EasyNVR的注意事项

    EasyNVR安防视频云服务平台可支持设备通过RTSP Onvif协议接入平台 xff0c 能提供视频监控直播 录像 云存储 检索与回看 国标级联等视频能力 xff0c 可支持分发RTSP RTMP HTTP FLV WS FLV HLS
  • 安卓存储之AndroidStudio自带的sqlite配置

    当我们使用sqlite数据库时 xff0c 创建好数据库 xff0c 能在File Explorer里看到databases目录下多了一个 db文件 xff0c 但是这个表是无法查看数据库表里的内容的 所以我们准备换一种查看方式 xff0c
  • 记录《时间进度》(人生进度条)(包含自定义进度、小插件)的开发

    前言 开发的本意是想看到可视化的时间 xff0c 让我们心存敬畏 xff0c 珍惜时间 xff0c 毕竟时间一去不复返 xff01 最近灵感突突然袭来 xff0c 想着做一个时间精度条 xff1a 今天度过了多少 xff0c 这周度过了多少
  • realsense d435i标定imu与camera

    realsense d435i标定imu与camera 1 标定目的 realsense d435i包含两个红外相机 红外发射器 RGB相机和IMU四个模块 xff0c 显然四个传感器的空间位置是不同的 xff0c 我们在处理图像和IMU数
  • (转)stm32F4-----DMA的FIFO作用和用法

    在STM32F4系列中DMA增加了个FIFO 这个FIFO的作用是什么 xff1f 当我使能这个FIFO时 xff08 DMA InitStructure DMA FIFOMode 61 DMA FIFOMode Enable xff09
  • MacOS上快速下载安装brew

    推荐大家使用国内镜像源 xff0c 在MacOS上快速下载安装brew 复制下面这段命令到终端 xff0c 进入自动安装脚步步骤 xff0c 选择国内镜像源编号 1 中科大下载源 xff08 推荐 xff09 2 清华大学下载源 3 北京外
  • 【基础知识整理】什么是启发式?

    基础知识思考整理 http blog csdn net aganlengzi article details 77986138 启发式方法 xff1a A heuristic technique often called simply a

随机推荐