IT十八掌作业_java基础第三天_数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT十八掌作业_java基础第三天_数组相关的知识,希望对你有一定的参考价值。
1.定义一个函数,函数功能是动态提取int[]中元素的最大值。
class ArrayDemo
{
public static void main(String[] args)
{
int[] arr = new int[] {5,6,9,1,4};
int maxNumber = getMaxNumber(arr);
System.out.println("数组中的最大数为:"+maxNumber);
}
public static int getMaxNumber(int[] arr)
{
int temp = Integer.MIN_VALUE;
for (int i = 0;i<arr.length ;i++ )
{
if (temp < arr[i])
{
temp = arr[i];
}
}
return temp;
}
}
2.定义一个函数,从数组中查询指定的元素首次出现的位置。
class SearchArray
{
public static void main(String[] args)
{
int[] arr = new int []{3,23,1,6,90,23,43,8,5};
System.out.println("首次出现的位置为" + getIndex(arr,23));
}
public static int getIndex(int[] arr,int searchNum)
{
int index=-1;
//遍历数组
for (int i = 0;i < arr.length ;i++ )
{
if (arr[i] == searchNum)
{
index = i;
return index;
}
}
return index;
}
}
3.定义函数,完成冒泡排序,大数下沉。
class BubbleSort
{
public static void main(String[] args)
{
int [] arr = new int []{32,234,213,5,7,59,29,29,33,22,111,1};
out(sortArray(arr));
}
//数组排序
public static int[] sortArray(int[] arr)
{
int index = 0;
for (int i = 0 ;i < arr.length-1 ;i++ )
{
for (int j = i + 1; j < arr.length ; j++ )
{
if (arr[i]> arr[j])
{
//交换位置
index = arr[i];
arr[i] = arr[j];
arr[j] = index;
}
}
}
return arr;
}
//输出数组
public static void out(int[] arr)
{
for (int i = 0 ;i < arr.length ;i++ )
{
System.out.print(arr[i]+"\t");
}
System.out.println();
}
}
4.折半查找。
class HalfSearch
{
public static void main(String[] args)
{
int [] arr = new int []{1,2,3,4,5,6,7,8,9,10};
System.out.println(getFind(arr,5));
}
public static int getFind(int [] arr ,int search)
{
int left = 0;
int right = arr.length-1;
int mid = 0;
int index = -1;
while (left <= right)
{
mid = (left + right)/2;
if (arr[mid] == search)
{
index = mid ;
return index;
}
else if (search < arr[mid])
{
right = mid -1 ;
}
else
{
left = mid + 1;
}
}
return index;
}
}
6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。
class ArrayTransDemo
{
public static void main(String[] args)
{
int [][] arr = initArray(5,5);
out(arr);
System.out.println("-----------------");
int [][] arrNew=trans(arr,5,5);
out(arrNew);
}
//初始化二维数组
public static int[][] initArray(int m, int n)
{
int [][] arr = new int [m][n];
int count = 0;
for (int i = 0;i<arr.length ;i++ )
{
for (int j = 0 ;j<arr[i].length ;j++ )
{
arr[i][j] = count + 1;
count++;
}
}
return arr;
}
//转置数组
public static int[][] trans(int[][] arr,int m , int n)
{
int [][] arrNew = new int [n][m];
for (int i = 0 ;i<arr.length ;i++ )
{
for (int j = 0 ;j<arr[i].length ;j++ )
{
arrNew[j][i] = arr[i][j];
}
}
return arrNew;
}
//打印
public static void out(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] + "\t");
}
System.out.println();
}
}
}
7.遍历三维组数,横向输出三维数组的每一个层。
class OutHorizontalDemo
{
public static void main(String[] args)
{
int[][][] arrr =initArray(3,3,3);
outHor(arrr);
}
//初始化三维数组
public static int[][][] initArray(int x, int y, int z)
{
int [][][] arr = new int [x][y][z];
int count = 0;
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] = count + 1;
count++;
}
}
}
return arr;
}
// 横向输出三维数组
public static void outHor(int[][][] arr)
{
// 循环行数,每个二维数组的长度
for (int i = 0; i < arr[0].length; i++)
{
// 输出所有列
for (int j = 0; j < arr.length; j++)
{
// 输出每个层上的第i行的元素.
for (int k = 0; k < arr[j][i].length; k++)
{
System.out.print(arr[j][i][k] + "\t");
}
System.out.print(" | ");
}
System.out.println();
}
}
}
8.定义一个类:Dog 有名称 color age cry();
class Dog
{
private String name;
private String color;
private int age;
public Dog(String name, int age)
{
this.name = name;
this.age = age;
}
public String getColor()
{
return color;
}
public void setColor(String color)
{
this.color = color;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age ;
}
public void cry()
{
System.out.println("汪汪~~~~~~~~~~~");
}
}
class DogDemo
{
public static void main(String[] args)
{
Dog dog = new Dog("keke",2);
System.out.println("Name:"+dog.getName()+"\t" + "Age:"+dog.getAge());
dog.cry();
}
}
9.阐述出来堆区,栈区,何时出现溢出,如何解决。
栈区:保存方法以及局部变量 --递归调用自身可能出现栈区溢出
堆区:保存对象以及成员变量 --对象过大可能出现堆溢出
如何解决:1.尽可能不产生不必要的对象或成员变量
2.递归操作要小心
10.oop
面相对象:是相对面向过程而言的一种编程方式,将问题简单化.
以上是关于IT十八掌作业_java基础第三天_数组的主要内容,如果未能解决你的问题,请参考以下文章