這篇文章主要介紹java中一維數(shù)組的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

為楚雄州等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及楚雄州網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都做網(wǎng)站、網(wǎng)站設計、楚雄州網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
一維數(shù)組
1.一維數(shù)組的定義方式:
int[] array1 = new int[3];//聲明創(chuàng)建一個包含3個元素的數(shù)組array1(初始值為0)
int[] array2 = {1, 2, 3};//聲明、創(chuàng)建并初始化一個包含3個元素的數(shù)組
int[] array3 = new int[] {1, 2, 3};//聲明、創(chuàng)建并初始化一個包含3個元素的整型數(shù)組
int[] array4;
array[4] = {1, 2, 3}//先聲明一個數(shù)組array,再進行創(chuàng)建及初始化
int[] array5 = new int[3];
array5[0] = 1;
array5[1] = 2;
array5[2] = 3;//先聲明、創(chuàng)建一個具有3個元素的數(shù)組,再用賦值語句進行初始化2.利用一維數(shù)組輸出斐波那契數(shù)列的前20項
public static void fib(int[] array) {
array[0] = 1;
array[1] = 1;
for (int i = 2; i < array.length; i++) {
array[i] = array[i - 1] + array[i - 2];
}
System.out.println(Arrays.toString(array));
}//記得在主函數(shù)中創(chuàng)建array數(shù)組題目練習
1.實現(xiàn)二分查找算法:有序的數(shù)組
public class TestDemo1 {
public static int binary(int[] array, int key) {//key為要查找的數(shù)
Arrays.sort(array);//正序排列數(shù)組
System.out.println("由從小到大順序排列數(shù)組:" + Arrays.toString(array));
int left = 0;
int right = array.length - 1;//將數(shù)組最小下標與最大下標分別賦值給left和right
int mid = 0;//將中值初始化
while (left <= right) {//“=”條件防止當輸入的值為數(shù)組最大下標指向的數(shù)時,不進入循環(huán),而返回-1的情況
mid = (left + right) / 2;//二分法原理為折半查找,故中間值為左右下標之和除以2
if (key == array[mid]) {//如果第一次中間下標指向的值正好等于要查找的值,返回該下標
return mid;
} else if (key > array[mid]) {//如果如果輸入的值大于中間下標指向的值,則將當前中值下標作為下一次循環(huán)的左下標
left = mid + 1;/*“+1”的含義:防止輸入的值為數(shù)組最大下標指向的值,當進行二分查找最后一步時,因為mid為int類型,所以會導
致左邊下標不在發(fā)生變化,所以要+1;當+1時,左邊下標變?yōu)樯弦淮沃兄迪聵说暮笠晃唬挥绊懘朔椒ǖ恼_性,還可以減少計算步驟*/
} else {//只剩下輸入的數(shù)下標小于中值下標的情況,將當前中值下標作為下次循環(huán)的右下標
right = mid - 1;//與“+1”含義類似,防止輸入的數(shù)對應的為最右下標
}
}
return -1;//在數(shù)組中找不到輸入的數(shù),返回-1
}
public static void main(String[] args) {
int[] array = {22, 15, -46, 35, 69, 20};
System.out.println("請輸入你想查找的數(shù)字:");
Scanner scanner = new Scanner(System.in);
int key = scanner.nextInt();
System.out.println(binary(array, key));
}
}2.求連續(xù)子數(shù)組的最大和
public class TestDemo1 {
public static void sumArray(int[] array) {
int sum = array[0];//對數(shù)組求和的變量
int max = array[0];//求和最大值的變量
for (int i = 1; i < array.length; i++) {//從第一項開始循環(huán)
if (sum + array[i] < array[i]) {//如果前幾項的和與本項之和小于本項,則最大連續(xù)子數(shù)組的和肯定不包括前幾項
sum = array[i];//將本項的值賦給sum,之后的循環(huán)求和從本項依次向后相加
} else {
sum = sum + array[i];//如果前幾項的和與本項之和大于本項,則繼續(xù)向后執(zhí)行遞加操作
}
if (sum >= max) {//每次相加之后與初始的max值相比較,如果和大于max的值,則更新max,最后返回的max值即為最大連續(xù)子數(shù)列的和
max = sum;
}
}
System.out.println("連續(xù)子數(shù)組最大和為:" + max);
}
public static void main(String[] args) {
int[] array = {1, -2, 3, 10, -4, 7, 2, -5};
sumArray(array);
}
}3.交換兩個數(shù)
public class TestDemo1 {
public static void swap(int a,int b) {
int tmp = 0;
tmp = a;
a = b;
b = tmp;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a,b);
System.out.println(a);
System.out.println(b);
}
}用上面寫的方法在執(zhí)行交換兩個數(shù)操作數(shù)會出現(xiàn)錯誤,原因:
在主函數(shù)中swap(a,b)操作實際是將實參a,b的地址拷貝到swap方法中,即傳址。在swap方法中進行數(shù)值交換操作時只是交換了該方法中形參的地址,而原本實參的地址并沒有改變,所以輸出的a,b值沒有發(fā)生改變。
Java中的基本元素不支持傳址,必須是對象或者數(shù)組才能傳址
可作如下修改
class MyVlue {
int data;
}
public class TestDemo1 {
public static void swap(MyVlue myVlue,MyVlue myVlue2) {
int tmp = myVlue.data;
myVlue.data = myVlue2.data;
myVlue2.data = tmp;
}
public static void main(String[] args) {
MyVlue myVlue = new MyVlue();
myVlue.data = 10;
MyVlue myVlue2 = new MyVlue();
myVlue2.data = 20;
swap(myVlue,myVlue2);
System.out.println(myVlue.data);
System.out.println(myVlue2.data);
}
}
//新建對象進行數(shù)值的交換,交換的是實參4.逆置數(shù)組
public class TestDemo1 {
public static void invertArray(int[] array) {
System.out.println("輸出該數(shù)組:" + Arrays.toString(array));
for (int front = 0, end = array.length - 1; front < end; front++, end--) {//循環(huán)將數(shù)組下標由第一項遞增,最后一項遞減,當遞增的下標超過遞減的下標時,結(jié)束循環(huán)
int temp = array[front];//將數(shù)組的第一個元素臨時賦值給變量temp
array[front] = array[end];//將數(shù)組最后的元素賦值到數(shù)組的第一個元素
array[end] = temp;//將temp的值賦給數(shù)組最后的元素,實現(xiàn)數(shù)組下標不變,但元素的值進行倒置的操作
}
System.out.println("將該數(shù)組倒置后輸出:" + Arrays.toString(array));
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
invertArray(array);
}
}以上是“java中一維數(shù)組的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享題目:java中一維數(shù)組的示例分析
網(wǎng)頁路徑:http://www.chinadenli.net/article18/gpcjdp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供、做網(wǎng)站、網(wǎng)站排名、網(wǎng)站導航、網(wǎng)站營銷、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)