標籤:數組
1.定義一個函數,函數功能是動態提取int[]中元素的最大值。
package Day2;public class MaxDemoi {public static void main(String[] args) {// TODO Auto-generated method stubSystem.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 stubint[] 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 stubint[] 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 stubint[][] 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 stubfor(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 stubfor(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 stubint[][][] 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 stubfor(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 stubDog 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:靜態,修飾成員變數,同類對象所共有,類也可以引用靜態成員,靜態方法只能訪問靜態成員.
大資料作業第三天