一、静态方法

静态方法属于类的,可以直接使用类名.方法名()调用。

静态方法的声明

访问修饰符 static 类型 方法名(参数列表)

{

//方法体

}

方法的作用:一个程序分解成几个方法,有利于快速调试程序,也有利于提高程序代码的利用率。因为方法是可以多次被调用的,调用次数和调用场合没有限制。

方法分类:①返回值为(空)void的方法②带具体返回类型的方法③不带参数的方法④带参数的方法

方法的返回值:如果方法中有返回值,方法中必须使用关键字return返回该值,返回值类型为该方法所定义的返回值类型。

①不带返回值的方法

 public class BubbleSort{
public static void main(String []argas)
{
int[] array={80,53,12,90,35,22,65,45,82,33};
bubble(array);
print(array);
} //冒泡方法
public static void bubble(int[] array)
{
//N个数比较的轮数为N-1次
for(int i=0;i<array.length-1;i++)
{
//每一轮比较的次数为N-1-i次
for(int j=0;j<array.length-i-1;j++)
{
//比较相邻的2个数,小靠前
if(array[j]>array[j+1])
{
//两个数做交换,通过设置临时变量
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
} } //打印输出方法
public static void print(int[] array)
{
//把排好序的数组输出
for(int i=0;i<array.length;i++)
{
System.out.print(array[i]+",");
}
}
}

②带返回值的方法

 public class BubbleSort{
public static void main(String []argas)
{
int[] array={80,53,12,90,35,22,65,45,82,33};
print(bubble(array));
} //冒泡方法
public static int [] bubble(int[] array)
{
//N个数比较的轮数为N-1次
for(int i=0;i<array.length-1;i++)
{
//每一轮比较的次数为N-1-i次
for(int j=0;j<array.length-i-1;j++)
{
//比较相邻的2个数,小靠前
if(array[j]>array[j+1])
{
//两个数做交换,通过设置临时变量
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array;
} //打印输出方法
public static void print(int[] array)
{
//把排好序的数组输出
for(int i=0;i<array.length;i++)
{
System.out.print(array[i]+",");
}
}
}

③方法复用及不带参数的方法

 public class BubbleSort{
public static void main(String []argas)
{
int[] array={80,53,12,90,35,22,65,45,82,33};
show1();
print(array);
show2();
print(bubble(array)); int[] array1={80,25,12,30,35,22,55,45,82,33};
show1();
print(array1);
show2();
print(bubble(array1));
} public static void show1()
{
System.out.print("排序前:");
} public static void show2()
{
System.out.print("排序后:");
} //冒泡方法
public static int [] bubble(int[] array)
{
//N个数比较的轮数为N-1次
for(int i=0;i<array.length-1;i++)
{
//每一轮比较的次数为N-1-i次
for(int j=0;j<array.length-i-1;j++)
{
//比较相邻的2个数,小靠前
if(array[j]>array[j+1])
{
//两个数做交换,通过设置临时变量
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
return array;
} //打印输出方法
public static void print(int[] array)
{
//把排好序的数组输出
for(int i=0;i<array.length;i++)
{
System.out.print(array[i]+",");
}
System.out.println();
}
}

二、Arrays类

Java的jdk中提供了一个Arrays工具类,此类专门为程序员操作数组提供了很多专有方法,通过方法的调用可以对数组进行赋值,排序,比较,查找元素等功能。

在jdk的api中搜索arrays可以看到该类的用法

就举几个例子

 import java.util.Arrays;
public class ArraysUtilDemo{
public static void main(String []argas)
{
int[] arraySrc1={6,8,9,16,35,90};
//拷贝数组
int[] arrayDes1=Arrays.copyOf(arraySrc1,10);
for(int i=0;i<arrayDes1.length;i++)
{
System.out.print(arrayDes1[i]+" ");
} System.out.println("\n**************************");
//拷贝指定数组中的指定范围内的数据
int[] arrayDes2=Arrays.copyOfRange(arraySrc1,2,4);
for(int i=0;i<arrayDes2.length;i++)
{
System.out.print(arrayDes2[i]+" ");
} System.out.println("\n**************************");
int[] arraySrc2={8,6,10,16,35,90};
boolean flag=Arrays.equals(arraySrc1,arraySrc2);
System.out.print(flag); System.out.println("\n**************************");
//数组填充
int[] arrayDes3=new int[10];
Arrays.fill(arrayDes3,10);
for(int i=0;i<arrayDes3.length;i++)
{
System.out.print(arrayDes3[i]+" ");
} System.out.println("\n**************************");
//对数组进行排序
Arrays.sort(arraySrc1);
for(int i=0;i<arraySrc1.length;i++)
{
System.out.print(arraySrc1[i]+" ");
} System.out.println("\n**************************");
//二分法查找
int x=Arrays.binarySearch(arraySrc1,9);
System.out.print(x); System.out.println("\n**************************");
//使用System类的方法来拷贝数组
int[] arrayDes4=new int[10];
System.arraycopy(arraySrc1,0,arrayDes4,2,5);
for(int i=0;i<arrayDes4.length;i++)
{
System.out.print(arrayDes4[i]+" ");
}
}
}

三、二维数组

①   可以看成以数组为元素的数组

②   Java中二维数组的声明和初始化应按照从高维到低维的顺序排列

示例

int[][] arr1=new int[10][];//第二维长度未定

int[][] arr2=new int[10][20];//第二维长度确定

☆虽然这两个数组的创建有区别,但系统为它们分配的堆内存空间大小是一样的。

对于任何类型的二维数组而言,第一维的大小决定了二维数组对象的大小,因为二维数组的成员是数组引用,数组引用本身大小是固定的。

初始化二维数组

①   静态初始化:int[][] arr={{1,2},{3,4,5},{6,7,8,9}};

②   动态初始化:

String[][] arrStr;                                       //声明

arrStr=new String[3][];                          //创建,分配内存

arrStr[0]=new String[2];                       //为高维初始化

arrStr[1]=new String[3];

arrStr[2]=new String[4];

arrStr[0][0]=new String(“abc00”);     //为低维初始化

arrStr[0][1]=new String(“abc01”);

arrStr[1][0]=new String(“abc10”);

arrStr[1][1]=new String(“abc11”);

arrStr[1][2]=new String(“abc12”);

arrStr[2][0]=new String(“abc20”);

arrStr[2][1]=new String(“abc21”);

arrStr[2][2]=new String(“abc22”);

arrStr[2][3]=new String(“abc23”);

 public class ArrayDemo2{
public static void main(String []args){
int[][] arr=new int[3][];
//每个高维的数组指向一个低维的int数组
arr[0]=new int[2];
arr[1]=new int[3];
arr[2]=new int[4]; //给低维数组进行赋值
arr[0][0]=1;
arr[0][1]=2;
arr[1][0]=3;
arr[1][1]=4;
arr[1][2]=5;
arr[2][0]=6;
arr[2][1]=7;
arr[2][2]=8;
arr[2][3]=9; for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr[i].length;j++)
{
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}

静态方法,Arrays类,二维数组的更多相关文章

  1. Arrays类的运用,二分法,数组的复制,命令行参数的运用,二维数组,Object,equals

    /*Arrays jdk中为了便于开发,给开发者提供了Arrays类, 其中包含了很多数组的常用操作.例如快速输出.排序.查找等.*/ import java.util.Arrays; public ...

  2. Java一维与二维数组的拷贝与排序

    Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组 ...

  3. 二维数组及Arrays工具类

    1.二维数组 概念: 数组中的每一个元素类型都是一维数组 二维数组初始化方式: 静态初始化: 格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组 ...

  4. 常用的Arrays类和二维数组以及二分法的介绍

    ---恢复内容开始--- 1.Array类 Array中包含了许多数组的常用操作,较为常见的有: (1)快速输出 import java.util.Arrays; public class Test{ ...

  5. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  6. Java数组声明创建和使用以及多维数组、Arrays类、稀疏数组

    目录 数组概述 数组声明创建 内存分析 java内存分析 堆 栈 方法区 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 小结: 数组使用 数组基础使用 For E ...

  7. 数组属性的习题、Arrays工具、二维数组

    一.数组的练习 1.声明一个char类型的数组, 从键盘录入6个字符: [1]遍历输出 [2]排序 [3]把char数组转化成一个逆序的数组. import java.util.Scanner; pu ...

  8. Arrays工具、二维数组以及LeetCode练习题

    1 Arrays PS:Arrays位于java.util包下 int binarySearch(type[] a, type key); 使用二分法查询 key 元素在 a 数组中的索引,如果数组不 ...

  9. 二维数组与类的定义_DAY06

    1:二维数组(理解): (1)格式:   1:int[][] arr = new int[3][2];  2:int[][] arr = new int[3][];   3:int[][] arr = ...

随机推荐

  1. String | StringBuffer | StringBuilder 比较

    2016的第一天,我决定写一篇博客来纪念这一天,希望一年好运吧. String|StringBuffer|StringBuilder这三者在我们学习JAVASE核心API的时候常常出来,而且大多数入门 ...

  2. 在Windows Server 2012中搭建SQL Server 2012故障转移集群

    OK~ WSFC 2012 R2 年度盛宴开始~ 在本文中,老王将用一系列的场景,把动态仲裁,动态见证,票数调整,LowerQuorumPriorityNodeID,阻止仲裁等群集仲裁技术串起来,完成 ...

  3. uva297 Quadtrees (线段树思想,区间操作)

    借鉴了线段数区间操作的思想,只是把一个结点的孩子扩展到了4个, 结点k,四个孩子编号分别为4*k+1,4*k+2,4*k+3,4*K+4,从零开始. 根据层数,确定权值. #include<cs ...

  4. [机器视觉] SIFT特征-尺度不变特征理解

    SIFT特征-尺度不变特征理解 简介 SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述.这种描述具有尺度不变性 ...

  5. linux ecrypt decrypt

    reference ecrypt vickey | openssl enc -aes-256-cbc -a -salt -pass pass:wu decrypt echo U2FsdGVkX1+Hn ...

  6. Sum All Numbers in a Range-freecodecamp算法题目

    Sum All Numbers in a Range 要求 给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. 最小的数字并非总在最前面. 思路 定义结果变量num 在for循环中,i ...

  7. UML类图中的六种线条与六种关系

    1.泛化(generalize) 实线空心三角箭头. 2.实现(realize) 虚线空心三角箭头. 3.聚合(aggregation) 实线空心菱形箭头. 4.组合(composition) 实线实 ...

  8. CPL学习笔记(一)

    整型 计算机的内存的基本单位是位(bit),可以将其看作电子开关,可以开,表示1:也可以关表示0. 字节(byte)通常指八位的内存单元. 8bit=1byte=1B; 1KB=1024B; 1M=1 ...

  9. matlplotlib绘图(二)

    matplotlib基础知识 matpltlib中的基本图表包括的元素 1.x轴和y轴:水平和垂直的轴线 2.x轴和y轴的刻度:刻度标识坐标值的分隔,包括最小刻度和最大刻度 3.x轴和y轴刻度:表示特 ...

  10. Python + Bottle + 谷歌搜索Api 实现简单搜索引擎

    1.运行环境 python3 centos7 2.Bottle的使用 使用bottle主要是因为它仅用python自带的库即可实现对web的搭建. bottle源码分析 bottle使用教程 3.代码 ...