數組的使用

1.eclipse開發常用快捷鍵
Alt + / : 代碼提示鍵
Ctrl + D:刪除選中代碼
Ctrl+alt+光標上/下:快速複製選中代碼
Alt+光標上/下:快速移動選中代碼
Alt+shift+R: 快速重構變量名,類名,方法名
Ctrl+Shift+T:快速定位到類型(Type)
Ctrl+/ : 快速註釋代碼行
Ctrl+Shift+/ : 快速註釋代碼塊
Alt + 光標的左/右: 在歷史位置之間切換
2.數組要知道
注意:定義數組時不能指定數組的長度**
Java數組的初始化可以通過兩種方式進行初始化:
a.通過字面值進行初始化,也有人叫靜態初始化
數組變量 = {值1 , 值2 , … , 值n};
int[] intAry= {1,2,3,4,5};
String[] stringAry= {“Tom” , “Jerry”, “Allan”};
同一數組中的元素必須類型相同
b. 使用關鍵詞”new”進行初始化
數組變量 = new 數組元素類型[數組的長度];
int[] intAry = new int[10];
String[] stringAry = new String[20];
Employee[] employees = new Employee[max];
在初始化時,必須指定數組的長度
3.java.util.Arrays 數組工具類
該類包含操作數組的各種方法
Arrays.fill() //對指定數組的每個元素,填充指定的值
Arrays.sort()//對指定數組的每個元素進行升序排序
Arrays. binarySearch()//從指定數組中查找指定的元素,返回元素下標
4.數組小練習
1.定義一個20*5的二維數組,用來存儲某班級20位學員的5門課的成績;這5門課,按存儲順序依次爲:core C++,coreJava,Servlet,JSP和EJB。
(1)循環給二維數組的每一個元素賦0~100之間的隨機整數。
(2)按照列表的方式輸出這些學員的每門課程的成績。
(3)要求編寫程序求每個學員的總分,將其保留在另外一個一維數組中。
(4)要求編寫程序求所有學員的某門課程的平均分。
public class Work1 {
static int[][] scores = new int[20][5];
/**
* @param args
*/
public static void main(String[] args) {
init();
printScore(scores);
double[] avg = new double[5];
for (int i = 0; i < 5; i++) {
double temp = getAvgPerCourse(scores,i);
avg[i] = temp;
}
}
/**
* 給20名同學的五門課,賦值成績
*/
static void init(){
//外層循環,循環20名同學
for (int i = 0; i < scores.length; i++) {
//內層循環,循環五門課
for (int j = 0; j < scores[i].length; j++) {
//賦值
scores[i][j] = (int) Math.ceil(Math.random()*100);
}
}
}
/**
* 打印學生成績
* @param arr
*/
static void printScore(int[][] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(“學生”+(i+1)+”:”);
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] +” “);
}
System.out.println();
}
}
/**
* 計算每一個學生的總分,返回一個數組
* @param arr
* @return
*/
static int[] getAllScorePerStu(int[][] arr){
int[] allScore = new int[20];
int sum ;
for (int i = 0; i < arr.length; i++) {
sum = 0;
for (int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
}
allScore[i] = sum;
}
return allScore;
}
/**
* 求20名學生,某一門課的平均分
* @param arr
* @param index
* @return
*/
static double getAvgPerCourse(int[][] arr,int index){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if(j == index){
sum += arr[i][index];
}
}
}
return sum /20;
}
}
2.開發一個程序,能接收用戶輸入的一行英文,
比如: “The String class represents character strings. All string literals in Java programs, are implemented as instances of this class. Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared.”
計算並輸出其中出現頻率最高的字符,及出現的次數
方法一(大致思路未完成):
import java.util.Arrays;
import java.util.Scanner;
public class Work2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“請輸入字符:”);
String s = sc.nextLine();
int[] ls = countLetters(s);
Arrays.sort(ls);
for (int i = 0; i < ls.length; i++) {
System.out.println(“字符【”+(char)(ls[i]+’a’)+”】出現了【”+ls[i]+”】次”);
}
}
static int[] countLetters(String s){
int[] letters = new int[26];
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int index = c - ‘a’;
letters[index] = letters[index]+1;
}
return letters;
}
}
方法二:
import java.util.Scanner;
public class HomeWork2 {
public static void main(String[] args) {
System.out.println(“請輸入一串字符串”);
Scanner sc=new Scanner(System.in);
String str =sc.nextLine();
//用一個二維數組存放字符和對應的字數
int arr[][] = new int[2][str.length()];

    for(int i=0;i<str.length();i++){ 
        boolean flag = false;
        for(int j=0;j<str.length();j++){ 
            if(str.charAt(i)==arr[0][j]){ 
                arr[1][j]++; 
                flag = true; 
            } 
        } 
        if(!isExist){ 
            arr[0][i]=str.charAt(i); 
            arr[1][i]=1; 
        } 
    } 
    for(int k=0;k<str.length();k++){ 
        if(arr[0][k]!=0){ 
            System.out.println("字符"+(char)arr[0][k]+"的數目爲"+arr[1][k]); 
        } 
    }
    sc.close();
} 

}
3.打印出如圖所示的楊輝三角,要求打印出n行,n由鍵盤輸入.
1
1 1
1 2 1
1 3 3 1
… …
import java.util.Scanner;
public class Work3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“請輸入數據:”);
int num = sc.nextInt();
int[][] arr = new int[num][];
//定義每一行有幾列
for (int i = 0; i < arr.length; i++) {
arr[i] = new int[i+1];
}
//賦值
for (int i = 0; i

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章