1.定义一个函数,函数功能是动态提取int[]中元素的最大值。

class ArrayMax

{

public static void main(String[] args){

getMax(new int[]{5,2,7,9,2,8,1});

}


public static void getMax(int[] arr){

if(arr == null || arr.length == 0){

System.out.println("数组不存在!");

}

int temp=arr[0];

for(int i=0;i<arr.length;i++){

if(temp<arr[i]){

temp=arr[i];

}

}

System.out.println(temp);

}

}

2.定义一个函数,从数组中查询指定的元素首次出现的位置。

class SearchArray

{

public static void main(String[] args){

System.out.println("指定的元素首次出现的位置为"+searchArray(2, new int[]{5,6,1,4,2,9,8,7}));

}


public static int searchArray(int index,int[] arr){

int temp=-1;

if (arr==null || arr.length==0){

System.out.println("数组异常!");

}


for (int i=0;i<arr.length ;i++ ){

if (arr[i]==index){

temp=i;

break;

}

}

if (temp==-1){

System.out.println("数组中无该元素!");

}

return temp;

}

}


3.定义函数,完成冒泡排序,大数下沉。

class BubbleArray

{

public static void main(String[] args){

outArray(bubbleArray(new int[]{5,9,2,6,3,1,8,4,7}));

}

public static int[] bubbleArray(int[] arr){

for (int i=0;i<arr.length-1 ;i++ ){

for (int j=0;j<arr.length-i-1 ;j++ ){

int temp=0;

if (arr[j]>arr[j+1]){

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

return arr;

}


public static void outArray(int[] arr){

for (int i=0;i<arr.length ;i++ ){

System.out.print(arr[i]+"\t");

}

}

}


4.折半查找。

class HalfFind{


public static void main(String[] args){

int temp;

temp=findArr(new int[]{1,2,3,4,5,6,7,8,9},2);

if (temp==-1){

System.out.println("该数组中无此数字!");

}

else {

System.out.println("该数字在此数组中为第"+temp+"位");

}

}

public static int findArr(int[] arr,int x){

int a=0,b=arr.length-1,t=-1,mid=0;

while(a<=b){

mid=(a+b)/2;

if (arr[mid]==x){

t=mid;

break;

}

else if (x<arr[mid]){

b=mid-1;

}

else if (x>arr[mid]){

a=mid+1;

}

}

return t;

}

}


5.阐述

6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。

class TransArray{

public static void main(String[] args){

//定义一个5*5的数组

int[][] arr=new int[5][5];

int n=1;

for (int i=0;i<arr.length ;i++ ){

for (int j=0;j<arr[i].length ;j++ ){

arr[i][j]=n;

n++;

}

}

outArray(arr);

arr=transArray(arr);

System.out.println("数组转置之后变为:");

outArray(arr);

}

//打印数组

public static void outArray(int[][] arr){

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();

}

}

//转置数组

public static int[][] transArray(int[][] arr){

int temp;

for (int i=0;i<arr.length ;i++ ){

for (int j=i;j<arr[i].length ;j++ ){

temp=arr[i][j];

arr[i][j]=arr[j][i];

arr[j][i]=temp;

}

}

return arr;

}

}


7.遍历三维组数,横向输出三维数组的每一个层。

class ThreeArray{

public static void main(String[] args){

int[][][] arr=new int[3][3][3];

int n=1;

for (int i=0;i<arr.length ;i++ ){

for (int j=0;j<arr[i].length ;j++ ){

for (int k=0;k<arr[i][j].length ;k++ ){

arr[i][j][k]=n;

n++;

System.out.print(arr[i][j][k]+"\t");

}

System.out.println();

}

System.out.println("*******************************");

}

//横向打印

for (int j=0;j<arr.length ;j++ ){

for (int i=0;i<arr[j].length ;i++ ){

for (int k=0;k<arr[i][j].length ;k++ ){

System.out.print(arr[i][j][k]+"\t");

}

System.out.print(" | ");

}

System.out.println();

}

}

}

8.定义一个类:Dog 有名称 color age cry();

class ClassDog

{

public static void main(String[] args){

Dog teddi=new Dog("Teddi","brown",2);

System.out.print("Name:"+teddi.getName()+"\n"+"Age:"+teddi.getAge()+"\n"+"Color:"+teddi.getColor()+"\n");

teddi.cry();

}

}

class Dog

{

private String name;

private String color;

private int age;


public void cry(){

System.out.println("wang!wang!wang!!!");

}


public Dog(String name,String color,int age){

this.name=name;

this.color=color;

this.age=age;

}

public void setName(String name){

this.name=name;

}

public void setColor(String color){

this.color=color;

}

public void setAge(int age){

this.age=age;

}

public String getName(){

return this.name;

}

public String getColor(){

return this.color;

}

public int getAge(){

return this.age;

}

}

9.阐述出来堆区,栈区,何时出现溢出,如何解决。


10.oop