数组的使用

来源:互联网 发布:linux怎么进入编辑 编辑:程序博客网 时间:2024/05/17 08:40

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

原创粉丝点击