函数的重载

函数的重载:在一个类中出现两个或者两个以上的同名函数,这个称作为函数的重载。

函数重载的作用: 同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数。

函数重载的要求:
1. 函数名一致。
2. 形参列表不一致。(形式参数的个数或者是对应的数据类型不一致)
3. 与函数的返回值类型是无关的。

数组

数组的定义格式:
数据类型[] 变量名 = new 数据类型[长度];
局部变量: 如果一个变量是在一个方法(函数)的内部声明的,那么该变量就是一个局部变量。

成员变量: 成员变量就是定义在方法之外,类之内的.


以下代码报错:空指针异常

int[] arr = new int[2];
arr = null ; //null 让该变量不要引用任何的对象。 不要记录任何 的内存地址。
arr[1] = 10;
System.out.println(arr[1]);

数组的初始化方式:

动态初始化:
数据类型[] 变量名 = new 数据类型[长度]; 静态初始化:
数据类型[] 变量名 = {元素1,元素2.....};

如果程序一开始你就已经确定了数据,那么这时候建议使用静态初始化。如果
数据一开始还不太明确,这时候就建议使用动态初始化。

算一个数组的最大值:

public static int  getMax(int[] arr){
int max = arr[0]; //用于记录最大值 --这里容易出错,如果int max=0;那么在这个数组的所有元素都为负数时,结果会出错
for(int i = 1 ; i < arr.length ; i++){
if(arr[i]>max){ //如果发现有元素比max大,那么max变量就记录该元素。
max = arr[i];
}
}
return max;
}

选择排序(直接排序):使用一个元素与其他 的元素挨个比较一次,符合条件交换位置。

public static void selectSort(int[] arr){

        //把最大值放在首位置。
for(int j = 0; j<arr.length-1; j++){ // 控制的是轮数。
for(int i = j+1 ; i<arr.length ; i++){ // 找出最大值
if(arr[i]>arr[j]){
//交换位置
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}

冒泡排序:冒泡排序的思想就是使用相邻的2个元素挨个比较一次,符合条件交换位置

public static void bubbleSort(int[] arr){

        //把最大值放在首位置。
for(int j = 0; j<arr.length-1; j++){ // 控制的是轮数。
for(int i = 0 ; i<arr.length-1-j ; i++){ // 找出最大值
if(arr[i]>arr[i+1]){
//交换位置
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
}

需求:定义一个函数接收一个数组对象和一个要查找的目标元素,函数要返回该目标元素在
数组中的索引值,如果目标元素不存在数组中,那么返回-1表示。

折半查找法(二分法): 使用前提必需是有序的数组。

public static int halfSearch(int[] arr, int target){
//定义三个变量分别记录最大、最小、中间的查找范围索引值
int max = arr.length-1;
int min = 0;
int mid = (max+min)/2;
while(true){
if(target>arr[mid]){
min = mid+1;
}else if(target<arr[mid]){
max = mid -1;
}else{
//找到了元素
return mid;
} //没有找到的情况
if (max<min){
return -1;
} //重新计算中间索引值
mid = (min+max)/2;
} }

排序(sort)
找元素在数组中的位置(二分查找法) binarySearch
数组转换为字符串 toString();
数组的工具类(Arrays):

public static void main(String[] args)
{
int[] arr = {12,3,1,10,8};
//排序的方法
Arrays.sort(arr);
String info = Arrays.toString(arr);
System.out.println("数组的元素:"+ info); // 1, 3, 8, 10, 12
int index = Arrays.binarySearch(arr,9);// 二分法查找(使用之前要先排序) : 如果能在数组中找到对应 的元素,那么就返回该数据的索引值,如果没有找到那么就返回一个负数表示。
System.out.println("找到的索引值:"+ index); }

数组的特点:
1. 数组只能存储同一种 数据类型的数据。
2. 数组是会给存储到数组中 的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1;
3. 数组一旦初始化,长度固定。
4. 数组中的元素与元素之间的内存地址是连续的。
二维数组: 二维数组就是数组中的数组。

二维数组 的定义格式:

    数据类型[][] 变量名 = new 数据类型[长度1][长度2];

    长度1:一条烟有多少盒。

    长度2: 一盒烟有多少根。

二维数组 的初始化方式:

    动态初始化:

        数据类型[][] 变量名 = new 数据类型[长度1][长度2];

    静态初始化:

        数据类型[][]  变量名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...} ..}

    int[][] arr = new int[3][4];
System.out.println("二维数组的长度:"+ arr.length); // 3

java基础——函数、数组、排序的更多相关文章

  1. 【java基础】选择排序and冒泡排序

    前言 : 今天学习的是J2SE视频里的第五章,数组部分,它里面留了一个经典的作业,就是让我们去从1倒9按一定规格排序,这让我想起了学习vb的时候最最让我头疼的两种排序方法,选择排序法 和 冒泡排序法. ...

  2. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  3. Java基础教程——数组

    数组 Java数组:用于存储同一种数据类型的多个数据. Java数组本身是一种数据类型--引用类型. 类(String.Scanner等大写字母开头的类型)也属于引用类型,int.double等基本类 ...

  4. Java基础-反转数组

    /** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...

  5. java基础(十) 数组类型

    1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...

  6. java 基础概念 -- 数组与内存控制

    问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...

  7. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...

  8. java 基础知识-数组的7种算法(排序、求和、最值、遍历...)

    遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...

  9. JAVA基础--函数和数组03

    一.函数的引入 函数的引入 能把相同的代码都抽出来,放到一个地方,等到要使用的时候再去调用,如果有不同的数据,在使用的时候传递就行了: 2. 函数的概念:函数又叫方法,一段独立于代码块 直接卸载类中, ...

  10. Java基础总结--数组

    ---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...

随机推荐

  1. 测试用例Excel转XML格式教程

    运行环境: Python版本:Python2.7.15 第三方库:pywin32 Excel版本:Excel2016 1.安装Python2.7.15 1)下载Python安装包 进入Python官网 ...

  2. memcached DRDOS攻击实验

    memcached DRDOS攻击实验 一.前提 关于drdos DRDoS(Distributed Reflection Denial of Service) 指的是利用IP Spoofing技术, ...

  3. Robot Framework自定义关键字

    需求分析: 如下图,诸多步骤中可能共用某些共同的步骤,比如都需要登录会员 此,可以把登录的操作写成模块化,插入其他脚本供其他脚本调用,如此可以节省不少脚本量 上图为会员登录的操作. 具体实施如下: 1 ...

  4. js移动端判断跳转

    js移动端判断跳转,只一行 默默收藏 if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobil ...

  5. Missing Semester

    计算机教育中缺失的一课 The Missing Semester of Your CS Education 文档:https://missing-semester-cn.github.io/ 网课:h ...

  6. ModelForm验证笔记

    Form验证    UserInfoForm  --> Form -->BaseForm(is_valid...)    UserInfoModelForm -->ModelForm ...

  7. L1-6、Prompt 与上下文的关系🤖

    模型不是"记性差",只是"提示不清". 为什么理解上下文对话很重要? 大模型具备 "上下文窗口" 的能力,可以"记住"你 ...

  8. 「Note」图论方向 - 网络流

    1. 网络流 1.1. 定义 1.1.1. 网络 网络是指一个有向图 \(G=(V,E)\),每条边 \((u,v)\in E\) 有一个权值,\(c(u,v)\) 称为容量,当 \((u,v)\no ...

  9. Linux系统安全配置相关

    一.说明 最近公司安全部门针对我们的系统从系统组件.系统配置.系统应用容器三个层面对系统进行了整体的扫描,针对系统配置这块,有许多安全配置项,这里在这里记录一下,有需要的直接按照介绍的配置进行相应的修 ...

  10. Java中基本数据类型和引用数据类型的存放位置

    基本数据类型存放在哪? 基本类型的变量存在栈里或者堆里不是由"大小可知,生存期可知"就能确定了.关键是上下文. 比如: void method(){ int a = 3; } 这自 ...