标签:数组
1.定义一个函数,函数功能是动态提取int[]中元素的最大值。
package Day2; public class MaxDemoi { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(getMax(new int[0])); int[] arr={1,2,3,4,5,6,7,8,9}; System.out.println("Maxvalue is "+getMax(arr)); } public static int getMax(int[] arr){ if(arr==null||arr.length==0){ System.out.println("数组不存在"); return -1; } int tmp=0; for(int i=0;i<arr.length;i++){ if(tmp<arr[i]){ tmp=arr[i]; } } return tmp; } }
2.定义一个函数,从数组中查询指定的元素首次出现的位置。
package Day2; public class FirstShow { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr=new int[]{1,2,3,4,5}; int index=FindArray(3, arr); } public static int FindArray(int num,int array[]){ if(array == null|| array.length==0){ System.out.println("数组不能为空"); return -1; } int index=-1; for(int i=0;i<array.length;i++){ if(array[i]==num){ index=i; System.out.println("所取数的位置是"+index); } else { System.out.println("找不到啊"); return -1; } } return index; } }
3.定义函数,完成冒泡排序,大数下沉。
package Day2; public class BUbbDemo { public void sort(int[] args){ for(int m : args){ System.out.print("排序前 "+args[m]+" "); } int time1 = 0,time2 = 0; for(int i = 0 ; i < args.length-1 ; i++){ ++time1; for(int j = i+1 ; j < args.length ; j++){ ++time2; int temp ; if(args[i] > args[j]){ temp = args[j]; args[j] = args[i]; args[i] = temp; } } } System.out.println(); System.out.println("外循环次数:"+time1+"内循环次数:"+time2); for(int n : args){ System.out.print("排序后 "+n+" "); } } public static void main(String[] args) { int[] arg = new int[]{2,1,4,5,8,7,6,3,9,0}; new BUbbDemo().sort(arg); } }
4.折半查找。
package Day2; /* * 折半查找 */ public class minDemo { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr=new int[]{1,2,3,4,5,6,7,8,9}; int a=0,b=arr.length-1,m=0; int x=5; while(a<=b){ m=(a+b)/2; if(m==x){ System.out.println("找到"+m); break; } else if(x<arr[m]){ b=m-1; } else{ a=m+1; } } } }
6.定义一个函数,实现矩阵的转置.arr[i][j] == arr[j][i];//前提条件是正方的。
package Day2; public class ArrayTransDemo { public static void main(String[] args) { // TODO Auto-generated method stub int[][] arr = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 }, { 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 }, { 21, 22, 23, 24, 25 } }; out(arr); System.out.println("------------"); transArr(arr); out(arr); } public static int[][] transArr(int[][] arr) { // TODO Auto-generated method stub for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr[i].length;j++){ int temp=arr[i][j]; arr[i][j]=arr[j][i]; arr[j][i]=temp; } } return arr; } private static void out(int[][] arr) { // TODO Auto-generated method stub for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++) System.out.println(arr[i][j]+"\t"); } System.out.println(); } }
7.遍历三维组数,横向输出三维数组的每一个层。
package Day2; public class OutHorizontalDemo { public static void main(String[] args) { // TODO Auto-generated method stub int[][][] arrr={{{1,2,3},{4,5,6},{7,8,9}},{{10,11,12},{13,14,15,},{16,17,18}},{{19,20,21},{22,23,24},{25,26,27}}}; outarrr(arrr); } private static void outarrr(int[][][] arrr) { // TODO Auto-generated method stub for(int i=0;i<arrr.length;i++){ for(int j=0;j<arrr[i].length;j++){ for(int t=0;t<arrr[i][j].length;t++){ System.out.print(arrr[j][i][t] + "\t"); } System.out.print("|"); } System.out.println(); } } }
8.定义一个类:Dog 有名称 color age cry();
package Day2; public class DogDemo { public static void main(String[] args) { // TODO Auto-generated method stub Dog dog=new Dog("houhou",3); dog.cry(); System.out.println("name"+dog.getName()+"age"+dog.getAge()); dog.setAge(4); dog.setName("lallalalal"); System.out.println("name"+dog.getName()+"age"+dog.getAge()); } } class Dog{ private String name; private int age; public Dog(String name,int age){ this.name=name; this.age=age; } 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("55555555555"); } }
9.阐述出来堆区,栈区,何时出现溢出,如何解决。
堆区:保存对象以及成员变量栈区:保存方法以及局部变量
溢出条件:产生过多或者占用内存很大的对象函数递归调用自身可能出现栈区溢出
如何解决:1.尽可能不产生不必要的对象或成员变量1.递归操作要小心
2.设置JAVA虚拟机堆大小(java -Xms<size>) 2.采用非递归手段
10.oop
面相对象:是相对面向过程而言的一种编程方式,将问题简单化.
类:是对象的抽象.
对象:是类的具体实现.
实例:就是对象.
成员变量:对象的属性变量.
成员函数:对象的方法.
public:用于修饰成员变量或者成员函数,表示公有,供其他类调用.
private:用于修饰成员变量或者成员函数,表示私有,用于封装,提高数据安全性,可通过set,get方法进行属性的改变,获取
构造函数:用于初始化对象.函数没有返回值.
this:是对象的成员变量,指向当前的对象,用于类中方法引用当前对象.
static:静态的,修饰成员变量,同类对象所共有,类也可以引用静态成员,静态方法只能访问静态成员.
标签:数组
原文地址:http://wwywinnie.blog.51cto.com/10421959/1761357