java 打印三维数组_Java基础第三天_数组
1.定義一個(gè)函數(shù),函數(shù)功能是動(dòng)態(tài)提取int[]中元素的最大值。
2.定義一個(gè)函數(shù),從數(shù)組中查詢指定的元素首次出現(xiàn)的位置。
3.定義函數(shù),完成冒泡排序,大數(shù)下沉。
4.折半查找。
5.闡述
6.定義一個(gè)函數(shù),實(shí)現(xiàn)矩陣的轉(zhuǎn)置.arr[i][j] == arr[j][i];//前提條件是正方的。
7.遍歷三維組數(shù),橫向輸出三維數(shù)組的每一個(gè)層。
8.定義一個(gè)類:Dog 有名稱 color age cry();
9.闡述出來堆區(qū),棧區(qū),何時(shí)出現(xiàn)溢出,如何解決。
10.oop
---------------------------------------------------
解答:獲取數(shù)組中最大值
class ArrayMax {
public static void main(String[] args){
System.out.println(arraymax(new int[]{1,2,3,6,33,76,23}));
}
public static int arraymax(int[] arr){
if(arr ==null){
System.out.println("數(shù)組不存在");
return -1;
}
int temp =arr[0];
for(int i=0;i
if(temp
temp=arr[i];
}
}
return temp;
}
}
2.從數(shù)組中查詢指定的元素首次出現(xiàn)的位置
class SearchArray{
public static void main(String[] args){
//System.out.println("第一次位置是第"+(searchArray(5,new int[]{1,2,4,5,7,8})+1)+"個(gè)數(shù)");
searchArray(5,new int[] {1,2,4,5,7,8});
}
public static void searchArray(int num,int[] arr){
// int a=-1;
for(int i=0;i
if(arr[i]==num){
System.out.println("這個(gè)數(shù)第一次位置是第"+(i+1)+"個(gè)數(shù)");
}
}
}
}
3.定義函數(shù),完成冒泡排序,大數(shù)下沉。
/*
冒泡排序,大數(shù)下沉
*/
class BubbleSort{
public static void main(String[] args){
//outArray(getSort(new int[]{9,5,4,5,1,7}));
outArray(getSort(new int[]{55,8,7,9,3,1,4,11,15,6,50,45,33,30}));
}
//定義一個(gè)冒泡排序方法
public static int[] getSort(int[] arr){
//外層循環(huán)決定排序幾次
for(int i=0;i
//內(nèi)層循環(huán)決定大數(shù)下沉走幾步
for(int j=0;j
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
//定義一個(gè)輸出數(shù)組的方法
public static void outArray(int[] arr){
for(int i=0;i
System.out.print(arr[i]+" ");
}
}
}
4.折半查找。
class BinarySelect{
public static void main(String[] args){
System.out.println(getValue(new int[]{1,2,3,4,5,6,7,8},6));
}
public static int getValue(int[] arr,int x){
int a=0;
int b=arr.length-1;
int m=0;
//int minindex=0;
while(a<=b){
int minindex=(a+b)/2;
m=arr[minindex];
if(m==x){
return minindex;
}
else if(m>x){
b=minindex-1;
}
else {
a=minindex+1;
}
}
return -1;
}
}
5.闡述
答:
1) 獲取數(shù)組的最大值,解決方法:遍歷整個(gè)數(shù)組,通過if條件判斷比較出最大值
2) 查詢數(shù)組中某個(gè)值,解決方法:遍歷整個(gè)數(shù)組,if條件判斷,查找到這個(gè)值時(shí),跳出循環(huán)
3) 冒泡排序:將最小/最大的數(shù),依次沉到數(shù)組的最后完成排序.
外層循環(huán)需要進(jìn)行array.length-1次,內(nèi)層循環(huán)需要比較array.length-i-1次.
選擇排序: 先循環(huán)選出最小(最大)值,找出下標(biāo),本輪循環(huán)完跟第一數(shù)交換,繼續(xù)從第二個(gè)數(shù)開始循環(huán),找到最小或者最大值,本輪循環(huán)完跟第二個(gè)數(shù)交換,以此類推。。
冒泡排序:第一個(gè)數(shù)跟第二個(gè)數(shù)比較大數(shù)下沉,以此類推 直到最大數(shù)下沉,然后在進(jìn)行比較第二輪,第二大數(shù)下沉。。。
4) 二分查找法:要求有序數(shù)組,通過比較中間值和查找值,確定查找值所在位置(中間值的左或右),進(jìn)行多次循環(huán)查找找到值的真正所在.
折半查詢:找到中間位置數(shù)比較這個(gè)數(shù)跟要查詢數(shù)大小,判斷這個(gè)數(shù)在中間位置數(shù)的哪邊,然后再取出那邊中間數(shù)繼續(xù)比較找出中間數(shù),直到找出查詢數(shù)(條件是兩邊數(shù)相等)。
5) 矩陣轉(zhuǎn)置問題:涉及矩陣初始化,賦值操作,轉(zhuǎn)置操作注意只需對(duì)左下正三角的值進(jìn)行對(duì)位交換array[i][j]=array[j][i].行列式轉(zhuǎn)置
6) 三位數(shù)組:抽象為魔方,分為層,每層的每行,每層的每行的每列.通過循環(huán)控制,可以橫向以及縱向打印每層.具體參見代碼.
7)面相對(duì)象:oriented object program 面向?qū)ο缶幊?一切皆對(duì)象
涉及面相對(duì)象類的定義,對(duì)象的生成,構(gòu)造函數(shù),修飾符,javabean技巧,對(duì)封裝的理解.
6.定義一個(gè)函數(shù),實(shí)現(xiàn)矩陣的轉(zhuǎn)置.arr[i][j] == arr[j][i];//前提條件是正方的。
//轉(zhuǎn)置數(shù)組
class ArrayTransDemo{
public static void main(String[] args){
transDemo(new int[][] {{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}});
}
public static void transDemo(int[][] arr){
for(int i=0;i
for(int j=i+1;j
int a=arr[i][j];
arr[i][j]=arr[j][i];
arr[j][i]=a;
}
}
//輸出數(shù)組
for(int i=0;i
for(int j=0;j
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
7.遍歷三維組數(shù),橫向輸出三維數(shù)組的每一個(gè)層
/*
*遍歷三維組數(shù),橫向輸出三維數(shù)組的每一個(gè)層
*/
class MagicArray{
public static void main(String[] args){
int[][][] arry=new int[][][]{{{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}}};
magicCube1(arry);
}
//縱向輸出三維數(shù)組
public static void magicCube(int[][][] arr){
for( int i=0; i
for( int j=0; j
for( int k=0; k
System.out.print(arr[i][j][k] +" ");
}
System.out.println();
}
System.out.println("------------------------------");
}
}
//橫向輸出三維數(shù)組方法
public static void magicCube1(int[][][] arr){
for( int i=0; i
for( int j=0; j
for( int k=0; k
System.out.print(arr[j][i][k] +" ");
}
System.out.print("\t"+"|"+"\t");
}
System.out.println();
}
}
}
8.定義一個(gè)類:Dog 有名稱 color age cry();
class DogDemo{
public static void main(String[] args){
Dog d=new Dog();
d.cry();
//new Dog().cry();
System.out.println(d.getName());
d.setName("hetao");
//System.out.println(d.name);
System.out.println(d.getName());
}
}
class Dog{
private String color="black";
private int age=3;
private String name="xiaobai";
//構(gòu)造方法
public ?void Dog(String name){
//name="n";
this.name=name;
}
public void setName(String name){
this.name=name;
//name="n";
}
public String getName(){
return this.name;
}
//屬性私有化 不能用靜態(tài)方法調(diào)用
public ? void cry(){
System.out.println(name +" "+ age+" "+"wawa");
}
}
9.闡述出來堆區(qū),棧區(qū),何時(shí)出現(xiàn)溢出,如何解決。
答:
堆區(qū):保存對(duì)象以及成員變量
棧區(qū):保存方法以及局部變量
溢出條件:產(chǎn)生過多或者占用內(nèi)存很大的對(duì)象函數(shù)遞歸調(diào)用自身可能出現(xiàn)棧區(qū)溢出
如何解決:1.盡可能不產(chǎn)生不必要的對(duì)象或成員變量1.遞歸操作要小心
2.設(shè)置JAVA虛擬機(jī)堆大小(java -Xms) 2.采用非遞歸手段
??臻g不足:java -Xss ? stacksize
堆空間不足:java -Xms
舉例:
堆溢出 byte[][] arr = new byte[1024 * 1024][1024 * 5];
棧溢出:
while(true){
out();
}
}
catch(Exception e){
System.out.println(count);
}
10.oop
答:
面相對(duì)象:是相對(duì)面向過程而言的一種編程方式,將問題簡單化.
類:是對(duì)象的抽象.
對(duì)象:是類的具體實(shí)現(xiàn).
實(shí)例:就是對(duì)象.
成員變量:對(duì)象的屬性變量.
成員函數(shù):對(duì)象的方法.
public:用于修飾成員變量或者成員函數(shù),表示公有,供其他類調(diào)用.
private:用于修飾成員變量或者成員函數(shù),表示私有,用于封裝,提高數(shù)據(jù)安全性,可通過set,get方法進(jìn)行屬性的改變,獲取
構(gòu)造函數(shù):用于初始化對(duì)象.函數(shù)沒有返回值.
this:是對(duì)象的成員變量,指向當(dāng)前的對(duì)象,用于類中方法引用當(dāng)前對(duì)象.
static:靜態(tài)的,修飾成員變量,同類對(duì)象所共有,類也可以引用靜態(tài)成員,靜態(tài)方法只能訪問靜態(tài)成員.
面向?qū)ο笫窍鄬?duì)面向過程而言,將功能封裝進(jìn)對(duì)象,強(qiáng)調(diào)具備了功能的對(duì)象。
類是對(duì)象的抽象,對(duì)象跟實(shí)例概念差不多
面向?qū)ο蟮奶卣?#xff1a;
1.封裝
把屬性都隱藏,提供set() get()方法
private :
用于修飾成員變量和成員函數(shù)
被私有化成員只在本類中有效
對(duì)外提供set get方法
2.繼承
3.多態(tài)
類的屬性也叫成員變量
類的方法也叫成員函數(shù)
成員變量:
定義在類中,隨著對(duì)象的建立而建立,存在于對(duì)象所在的堆內(nèi)存中,成員變量有默認(rèn)初始化。
局部變量:
定義在局部范圍內(nèi),存在于棧內(nèi)存,作用范圍結(jié)束,變量空間釋放,沒有默認(rèn)初始化
構(gòu)造函數(shù)
--------------------------
給對(duì)象進(jìn)行初始化 可以有多個(gè)構(gòu)造函數(shù) 重載
1.沒有返回值 連void也不能有
2.函數(shù)名和類名相同
3.用構(gòu)造函數(shù)創(chuàng)建對(duì)象 默認(rèn)的構(gòu)造函數(shù)時(shí)calssname
匿名對(duì)象
-----------------------------------
匿名對(duì)象是對(duì)象的簡化形式
匿名對(duì)象使用情況:
1.當(dāng)對(duì)對(duì)象方法僅進(jìn)行一次調(diào)用的時(shí)候
2.匿名對(duì)象可以作為實(shí)際參數(shù)進(jìn)行傳遞
Car car=new Car();
outCarColor(Car c);
匿名: outCarColor(new Car());
或者 ?new Car().run;
this :是關(guān)鍵字 對(duì)象內(nèi)部指向內(nèi)部的一個(gè)指針
static 靜態(tài)
用于修飾 成員變量和成員函數(shù)
修飾的成員:隨著類的加載而加載 ?優(yōu)于對(duì)象存在 被所有對(duì)象所共享 ?可以直接被類名調(diào)用
靜態(tài)方法只能訪問靜態(tài)成員 ?靜態(tài)方法中不可以寫this super關(guān)鍵字 主函數(shù)是靜態(tài)的
總結(jié)
以上是生活随笔為你收集整理的java 打印三维数组_Java基础第三天_数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB 输出当前时间
- 下一篇: Java计算两点坐标之间的距离