学习自华为开发者学院陈璇老师的JAVA系列课程
一、一维数组
数组声明
import java.util.Scanner;
public class GuessData {
public static void main(String[] args){
//声明数组
int[] list = new int[]{8, 4, 2, 1, 23, 344, 12};
//求和
int sum = 0;
for(int num : list){
System.out.println(num);
sum += num;
}
System.out.println("数组元素总和为: "+sum);
//猜数
Scanner input = new Scanner(System.in);
System.out.print("请输入您要的猜测的数字: ");
int guess = input.nextInt();
//猜测结果
boolean isCorrect = false;
for(int num : list) {
if (num == guess) {
isCorrect = true;
break;
}
}
if(isCorrect == true) {
System.out.println("恭喜您,您猜测的数字在数列中存在");
}else{
System.out.println("对不起,您猜的数字不在数列中");
}
}
}
import java.util.Scanner;
public class ShoppingList {
//购物金额清单
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入会员本月的消费记录");
//5笔消费
double[] list = new double[5];
for(int i=0; i<list.length; i++){
System.out.print("请输入第"+(i+1)+"笔会员消费金额:");
list[i] = input.nextDouble();
}
//输出购物金额及总金额
double sum = 0;
System.out.println("序号\t\t金额 (元) ");
for(int i=0; i<list.length; i++){
System.out.println((i+1)+"\t\t"+list[i]);
sum += list[i];
}
System.out.println("总金额\t\t"+sum);
}
}
注意foreach跟Perl等语言不同,JAVA增强型for循环不能用于修改数组数值
数组和栈的概念

二、二维数组
冒泡排序
/*冒泡排序(升序)*/
public class SortNums {
public static void main(String[] args){
int[] nums = {16,25,9,90,23, 100, 17};
System.out.println("*********冒泡排序前**********");
for(int num : nums){
System.out.println(num);
}
//冒泡排序(升序)
for(int i=0; i<nums.length-1; i++){ //轮
for(int j=0; j<nums.length-1-i; j++){ //每一轮比较几次
//按照规律比价并交换数字,前比后大则交换
if(nums[j]>nums[j+1]){
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
System.out.println("*********冒泡排序后**********");
for(int num : nums){
System.out.println(num);
}
}
}
import java.util.Scanner;
public class SortScore {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入5名同学的成绩: ");
int[] scores = new int[5];
for(int i=0; i<scores.length; i++){
System.out.print("请输入第"+(i+1)+"名同学的成绩: ");
scores[i] = input.nextInt();
}
System.out.println("*********冒泡排序前**********");
for(int num : scores){
System.out.println(num);
}
//冒泡排序(降序)
for(int i=0; i<scores.length-1; i++){ //轮
for(int j=0; j<scores.length-1-i; j++){ //每一轮比较几次
//按照规律比价并交换数字,前比后小则交换
if(scores[j]<scores[j+1]){
int temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
System.out.println("*********冒泡排序后**********");
for(int num : scores){
System.out.println(num);
}
}
}
Arrays类
JDK8 API查询手册:https://docs.oracle.com/javase/8/docs/api/

import java.util.Arrays;
public class ArraysMethods {
public static void main(String[] args){
//equals比较两个数组是否相等
System.out.println("----equals(array1, array2)方法: ----");
int[] arr1 = {10,50,40,30};
int[] arr2 = {10,50,40,30};
int[] arr3 = {60,50,85};
System.out.println(Arrays.equals(arr1, arr2));
System.out.println(Arrays.equals(arr1, arr3));
//toString将一个数组转换成一个字符串
System.out.println("----toString(array)方法: ----");
System.out.println(Arrays.toString(arr1));
//fill将数组array的所有元素都赋值为val
System.out.println("----fill(array, val)方法: ----");
int[] arr4 = {10, 50, 40, 30};
Arrays.fill(arr4, 100); //返回void
System.out.println(Arrays.toString(arr4));
//copyOf将数组array复制成一个长度为length的新数组
System.out.println("----copyOf(array, length)方法: ----");
int[] arr5 = {10,50,40,30};
int[] arr6 = Arrays.copyOf(arr5, 6);
System.out.println(Arrays.toString(arr6));
//binarySearch查询元素val在数组array中的下标
System.out.println("----binarySearch(array, val)方法: ----");
int[] arr7= {10,50,40,30};
Arrays.sort(arr7);
System.out.println(Arrays.toString(arr7)); //一定要排序,没找到为随机负数
System.out.println(Arrays.binarySearch(arr7, 40));
}
}
字符排序+搜索
import java.util.Arrays;
public class ArraysSortChar {
public static void main(String[] args){
//字符串排序
char[] chars = new char[] {'a','b','c','d','e','f','g'};
System.out.print("原字符串序列: ");
for(char oldChar : chars){
System.out.print(oldChar + " ");
}
//查找特定字符位置
Arrays.sort(chars);
System.out.print("\n排序后的字符串序列: ");
for(char newChar : chars){
System.out.print(newChar + " ");
}
int index = Arrays.binarySearch(chars, 'b');
System.out.println("\n字符b在数组中的位置为: "+index);
}
}
二维数组

import java.util.Scanner;
public class ClassScoreTotal {
public static void main(String[] args){
int[][] scores = new int[5][5];
//赋值
for(int i=0; i<scores.length; i++){
System.out.println("-------第"+(i+1)+"个班------");
for(int j=0; j<scores[i].length; j++) {
System.out.println("请输入第" + (i + 1) + "个班第" + (j + 1) + "个同学的成绩: ");
Scanner input = new Scanner(System.in);
scores[i][j] = input.nextInt();
}
}
//完成5个班级的成绩统计
System.out.println("-------- 统计成绩 --------");
for(int i=0; i<scores.length; i++){
int sum = 0; //每个班总分
for(int j=0; j<scores[i].length; j++) {
sum += scores[i][j];
}
System.out.println("第"+(i+1)+"个班的学生总成绩为: "+sum);
}
}
}
网友评论