IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java方法与数组 -> 正文阅读

[Java知识库]Java方法与数组

目录

一.方法的定义与使用

二.方法的重载

三.方法递归

四.数组的基本用法

五.二分查找


一.方法的定义与使用

//方法定义
public static 返回值声明 方法名称(参数类型 参数名称 ...){
   方法体代码;
   [return 返回值];
}

//方法调用
返回值变量=方法名称(实参...);
  1. 在没有返回值的方法中使用return; 表示提前结束方法的调用。
  2. java中没有函数声明的概念,一旦定义一个方法就必须写它的实现。
  3. 调用该方法与该方法定义的位置无关,可以在方法实现代码之前调用该方法。
  4. java方法的参数传递只有值传递,只是将实参的值复制一份给形参。

二.方法的重载

方法重载定义:在同一个类中,定义了若干个方法名称相同,参数列表不同(参数类型和个数),与返回值无关,这样的一组方法称为重载方法。

应用:println方法中可以接收所有类型。

代码示例:

public class Test {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        int ret=add(a,b);
        System.out.println(ret);

        double a1=10.2;
        double b1=1.0;
        double ret1=add(a1,b1);
        System.out.println(ret1);

        double a2=1.2;
        double b2=3.5;
        double c2=4.0;
        double ret2=add(a2,b2,c2);
        System.out.println(ret2);
    }
    public static int add(int x,int y){
        return x+y;
    }
    public static double add(double x,double y){
        return x+y;
    }
    public static double add(double x,double y,double z){
        return x+y+z;
    }
}

三.方法递归

那些场景下可以考虑递归:

  1. 一个大问题可以拆分为多个子问题的解;
  2. 拆分后的子问题和原问题除了数据规模不一样,他们的解决思路完全相同;
  3. 存在递归终止条件。

递归执行过程分析:

?示例代码:

 public static void main(String[] args) {
        //定义一个方法,按最高位到最低位输出其各个位数的数字
        int num=12345;
        printNum(num);
    }
    public static void printNum(int num){
        if(num>9){
            printNum(num/10);
        }
        System.out.println(num%10);
    }

?结果:

四.数组的基本用法

1.数组定义:存放相同数据类型的集合。

2.创建数组:

//动态初始化
数据类型[] 数组名称 = new 数据类型[] {初始化数据};
int[] arr=new int[] {1,2,3};
int[] arr=new int[3];

//静态初始化
数据类型[] 数组名称 = {初始化数据};
int[] arr={1,2,3};

3.数组的访问与长度:

  • 使用arr.length能够获取到数组的长度。
  • 数组长度为[0,arr.length-1]。
  • 数组下标从0开始?因为在数组中是根据数组的索引来取得数组元素的,索引:0 - length-1,下标从0开始,数组索引就是相对于第一个元素的偏移量。

4.数组遍历

for-each是for循环的另一种使用方法,只遍历不修改数组元素:

 int[] arr={1,2,3};
        for (int x:
             arr) {
            System.out.println(x);
        }
//执行结果
1
2
3

5.理解引用数据类型

  • 引用只是给对象起了一个别名而已,保存的是对象的地址
  • 对象:new出来的都是对象——实实在在存在的东西
  • 局部变量和引用都保存在栈上,new出来的对象保存在堆上?

6.数组的工具类

Java中提供了java.util.Arrays包中包含了一些数组的常用方法:

  • Arrays.toString(数组名) :将数组转换成字符串。
  • Arrays.copyOf(原数组名,拷贝后的新数组长度) :拷贝数组,深拷贝,即又创建了一个新数组。
  • Arrays.copyOfRange(原数组名,from,to) :拷贝某个范围,[from,to)左闭右开区间。

五.二分查找

  • 必须是有序数组!!!

代码如下:

class Homework {
    public static void main(String[] args) {
      int[] arr={1,2,3,4,5,6,7,8,9,10,18};
      System.out.println(binarySearch1(arr,6));
  }
   public static int binarySearch1(int[] arr,int toFind){
        return binarySearch2(arr,toFind,0,arr.length-1);
    }
    public static int binarySearch2(int[] arr,int toFind,int left,int right){
        while(left<=right){
            int mid=(left+right)/2;
            if(toFind<arr[mid]){
                return binarySearch2(arr,toFind,left,mid-1);
            }else if(toFind>arr[mid]){
                return binarySearch2(arr, toFind, mid+1, right);
            }else{
                return mid;
            }
        }
        return -1;
    }
}

结果为:

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:12:19  更:2021-11-23 12:13:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:45:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码