第七章 数组
7.1、數(shù)組概述
7.1.1、為什么需要數(shù)組
答:有時(shí)候需要存儲(chǔ)或處理一系列數(shù)據(jù),數(shù)組就可以充當(dāng)這樣的角色,它在內(nèi)存中是相連的數(shù)據(jù),并且在棧中的引用只有一個(gè),
如果不用數(shù)組,那數(shù)據(jù)就得一個(gè)一個(gè)定義一個(gè)一個(gè)聲明,浪費(fèi)內(nèi)存空間,顯然不合理。
7.1.2、java中的數(shù)組
答:數(shù)組的結(jié)構(gòu)和基本要素:
1、標(biāo)識(shí)符:數(shù)組的名稱,用于區(qū)分不同數(shù)組。
2、數(shù)組元素:向數(shù)組中存放的數(shù)據(jù)。
3、元素下標(biāo):對(duì)數(shù)組元素進(jìn)行編號(hào)。
4、元素類型:數(shù)組元素的數(shù)據(jù)類型。
7.2、如何使用數(shù)組
7.2.1、使用數(shù)組的步驟
答: 語法:數(shù)據(jù)類型[] 數(shù)組名???????????? 數(shù)據(jù)類型 數(shù)組名[]????? 數(shù)組名[下標(biāo)值]
數(shù)組名=new 數(shù)據(jù)類型[數(shù)組長(zhǎng)度]?????? 數(shù)據(jù)類型[] 數(shù)組名=new 數(shù)據(jù)類型[數(shù)組長(zhǎng)度]
數(shù)據(jù)類型[] 數(shù)組名={值1,值2,值3,......,值n}
7.2.2、常見錯(cuò)誤
答:1、數(shù)組下標(biāo)從0開始
2、數(shù)組訪問越界
7.2.3、上機(jī)練習(xí)
答:public class Goodsput{
public static void main(String[]arg){
String[] goods=new String[]{"fdgjf","jyhty","iyof","","jykyukl","klyuoyt","syhhffg"};
System.out.println("本次活動(dòng)特價(jià)商品有:");
for(int i=0;i<goods.length;i++){
System.out.println(goods[i]);
}
}
}
7.3、數(shù)組應(yīng)用
7.3.1、數(shù)組排序
答:import java.util.*;import java.util.Arrays;
public class ScoreSaort{
public static void main(String[]args){
int[] scores=new int[5];
Scanner input=new Scanner(Sysem.in);
System.out.println("請(qǐng)輸入5為同學(xué)的學(xué)習(xí)成績(jī):");
for(int i=0;i<scores.length;i++){
scores[i]=input.nextInt();
}
Arrays.sort(scores);
System.out.println("學(xué)生成績(jī)按升序排序");
for(int i=0;i<scores.length;i++){
System.out.println(scores[i]+" ");
}
}
}
7.3.2、上機(jī)練習(xí)
答:import java.util.Scanner;import java.util.Arrays;
public class ziMu{
public static void main(String[]args){
String[] zimu=new String[8];
System.out.println("請(qǐng)輸入8個(gè)字符:");
for(int i=0;i<zumu.length;i++){
System.out.println(zimu[i]);
}
Arrays.sort(zumu);
System.out.println("升序字符序列:");
? ?for(int i=0;i<ziMu.length;i++){
?? ?System.out.println(ziMu[i]+"");
? }
?? System.out.println("逆序字符序列:");
?? for(int i=7;i>=0;i--){??????
?? ?System.out.println(ziMu[i]+"");
}
}
}
7.3.3、求數(shù)組最大值
答:import java.util.Scanner;
public class MaxScore{
public static void main(String[]args]);
int[] score=new int[15];
int max=0;
System.out.println("請(qǐng)輸入學(xué)生成績(jī):");
for(int i=0;i<score.length;i++){
score[i]=input.nextInt();
}
max=score[0];
for(int i=1;i<score.length;i++){
if(score[i]>max){
max=score[i];
}
System.out.println("成績(jī)坐分:");
}
}
7.3.4、上機(jī)練習(xí)
答:import java.util.*;
public class zuiXiaoZhi{
public static void main(String[] args){
int[] num=new int[54];
int min=0;
Scanner input=new Scannet(System,in);
System.out.println("請(qǐng)輸入4家店的價(jià)格");
for(int i=0;i<num.length;i++){
System.out.println("第"+(i+1)+"家店的價(jià)格是:");
num[i]=input.nextInt());
}
min=num[0];
for(int i=0;i<num.length;i++){
if(num[i]<min){
min=num[i];
}
}
System.out.println("最低價(jià)格是:"+min);
}
}
7.4、深入了解數(shù)據(jù)類型
7.4.1、基本數(shù)據(jù)類型
答:對(duì)于基本數(shù)據(jù)類型,不同的變量會(huì)分配不同的存儲(chǔ)空間,并且存儲(chǔ)空間中存儲(chǔ)的是該變量的值。賦值操作傳遞的是變量的值,
改變一個(gè)變量的值不會(huì)影響另一個(gè)變量的值。
7.4.2、引用數(shù)據(jù)類型
答:public class ReferenceTypeDemo{
public static void main(String[]args){
int[] infoZhang=new int[]{170,60};
int[] infoLi=infoZhang;
System.out.println("去年張的身高是"+infoZhang[0]+"體重是"+infoZhang[1]+"公斤");
infoLi[0]=180;
infoLi[1]=70;
System.out.println("去年張的身高是"+infoZhang[0]+"體重是"+infoZhang[1]+"公斤","黎明的身高是"+infoLi[0]+"體重是"+info[1]);
}
}
7.4.3、上機(jī)練習(xí)
答:import java.util.Scanner;
public class shangji5 { ?
public static void main(String[]args){
??int[]points=new int[5];??//積分組 ?
?int[] newpoints=new int[5];
??Scanner input=new Scanner(System.in);
??System.out.println("請(qǐng)輸入5位會(huì)員的積分:"); ??
for(int i=0;i<points.length;i++){ ??
System.out.println("第"+(i+1)+"次會(huì)員積分:");?//歷史積分
??points[i]=input.nextInt(); ??
}
??System.out.println("序號(hào)"+"\t\t\t歷史積分"+"\t\t\t新年積分"); ??
for(int i=0;i<points.length;i++){ ???
newpoints[i]=points[i];
???newpoints[i]=newpoints[i]+500;?//贈(zèng)送500積分 ??
?System.out.println((i+1)+"\t\t\t"+points[i]+"\t\t\t"+newpoints[i]);
??}?? //(i+1):從1開始,從零開始不加1
? }
} ?
本章總結(jié)
答:數(shù)組是可以在內(nèi)存中連續(xù)存儲(chǔ)多個(gè)元素的結(jié)構(gòu),數(shù)組中的所有元素必須相同的數(shù)據(jù)類型。
數(shù)組中元素通過數(shù)組的下標(biāo)進(jìn)行訪問,數(shù)組下標(biāo)從0開始。
一維數(shù)組可用一個(gè)循環(huán)動(dòng)態(tài)初始化,或者用一個(gè)循環(huán)動(dòng)態(tài)輸出數(shù)組中的元素信息。
int,double,char,boolean類型是基本數(shù)據(jù)類型。
String和數(shù)組是引用數(shù)據(jù)類型。
本章作業(yè)
答:import java.util.Scanner;
public class NumberCount {
?/** ? * 統(tǒng)計(jì)合法數(shù)字(1,2,3)和非法數(shù)字的個(gè)數(shù) ? */ ?
public static void main(String[] args) {
??int[] num = new int[10];?//數(shù)字?jǐn)?shù)組
??int[] count = new int[4];?//統(tǒng)計(jì)每個(gè)數(shù)出現(xiàn)的個(gè)數(shù)
??Scanner input = new Scanner(System.in); ??
System.out.println("請(qǐng)輸入10個(gè)數(shù)");
??for(int i = 0; i < num.length; i++){ ???
num[i] = input.nextInt();
???switch(num[i]){ ??
?case 1: ??
?????count[0]++;
???? break;?
??case 2: ???
? count[1]++; ????
break; ??
?case 3: ???
?count[2]++; ??
??break; ?
??default: ???
?count[3]++; ???
?break; ??
?} ?
?} ?
?System.out.println("數(shù)字 1 的個(gè)數(shù):" + count[0]); ?
?System.out.println("數(shù)字 2 的個(gè)數(shù):" + count[1]); ?
?System.out.println("數(shù)字 3 的個(gè)數(shù):" + count[2]); ?
?System.out.println("非法數(shù)字的個(gè)數(shù):" + count[3]); ?}
}
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/lanliying/archive/2012/12/14/2818435.html
總結(jié)
- 上一篇: Eclipse中的codetemplat
- 下一篇: 线程间操作无效: 从不是创建控件“Con