實現面向物件程式設計OOP(簡易模型)
阿新 • • 發佈:2022-04-21
陣列概述
陣列是具有相同資料型別的一組資料的集合。陣列中的每個元素具有相同的資料型別。陣列的長度是固定的。在Java中同樣將陣列看作是一個物件,雖然基本資料型別不是物件,但是由基本資料型別組成的陣列則是物件。在程式設計中引入陣列可以更有效地管理和處理資料。可根據陣列的維數將陣列分為一維陣列、二維陣列……
陣列的建立
int[] arr1={0,1,2}; int arr2[]={0,1,2}; int[] arr3=new int[3]; int[] arr4=new int[]{0,1,2}; p(arr1); p(arr2); p(arr3); p(arr4);
未初始化的陣列int型初始值都是0
Arrays類常用方法
package com.hanqi.maya.model; import java.util.Arrays; public class Arr { public static void main(String[] args) { int arr1[]={0,1,2,3,4,5}; Arrays.fill(arr1, 0, 3, 1);//將陣列的從第0個索引開始到第3個索引之前值替換為1 p(arr1); int a=Arrays.binarySearch(arr1, 4);//用二分法查詢該數字在數組裡返回索引位置,該陣列必須是排序的,如果沒有返回應該出現的位置並負號 System.out.println(a); int arr2[]={9,1,2,3,4,5}; int arr3[]={9,1,2,3,4,5}; System.out.println(Arrays.equals(arr2, arr3));//判斷陣列是否相同 Arrays.sort(arr2);//對陣列排序 p(arr2); int arr4[]=Arrays.copyOfRange(arr2, 0, 3);//複製陣列,從索引0開始,到索引3之前 p(arr4); System.out.println(Arrays.toString(arr2)); } public static void p(int arrs[]){ for(int i=0;i<arrs.length;i++){ System.out.print(arrs[i]+","); } System.out.println(); } }
陣列排序
package com.hanqi.maya.model; import java.util.Arrays; public class Arr { public static void main(String[] args) { int arr1[]={0,1,2,3,4,5}; // 氣泡排序 for (int i = 0; i < arr1.length; i++) { for (int j = 0; j < arr1.length - 1; j++) { if (arr1[j] < arr1[j + 1]) { int temp = arr1[j + 1]; arr1[j + 1] = arr1[j]; arr1[j] = temp; } } } p(arr1); // 直接選擇排序 int arr2[]={9,1,2,3,4,5}; for (int i = 0; i < arr2.length; i++) { int indexMax = i; for (int j = i + 1; j < arr2.length; j++) { if (arr2[indexMax] < arr2[j]) { indexMax = j; } } int temp = arr2[i]; arr2[i] = arr2[indexMax]; arr2[indexMax] = temp; } p(arr2); // 反轉排序 int arr3[]={9,1,2,3,4,5}; int len = arr3.length; for (int i = 0; i < len / 2; i++) { int temp = arr3[i]; arr3[i] = arr3[len - i - 1]; arr3[len - i - 1] = temp; } p(arr3); } public static void p(int arr[]){ for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+","); } System.out.println(); } }
陣列簡單例子
//學生類
package com.jihe;
public class Student {
private String name;
private int age;
public Student(){}
public Student(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Shuzu {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student st[]=new Student[3];
Student s1=new Student("Mr.A",25);
Student s2=new Student("Mr.B",28);
Student s3=new Student("Mr.C",29);
st[0]=s1;
st[1]=s2;
st[2]=s3;
for(int x=0;x<st.length;x++){
System.out.println(st[x].getName()+","+st[x].getAge());
}
}
}
陣列簡單例子2
package com.hanqi.maya.test;
import java.util.Scanner;
public class Test {
public static void Arr(){
System.out.println("請輸入五個數,用 “,” 隔開,程式會自動輸出最大值、最小值、和總和,平均數。");
Scanner sc=new Scanner(System.in);
int max=0;;
int min=0;
double sum=0;
double pj=0;
String sa=sc.nextLine();
String[] arr=sa.split(",");
int[] arr1={0,0,0,0,0};
arr1[0]=Integer.parseInt(arr[0]);
arr1[1]=Integer.parseInt(arr[1]);
arr1[2]=Integer.parseInt(arr[2]);
arr1[3]=Integer.parseInt(arr[3]);
arr1[4]=Integer.parseInt(arr[4]);
for(int i=0;i<arr1.length;i++){
sum+=arr1[i];
if(arr1[i] > max){
max=arr1[i];
}
int j=i+1;
if(j<4){
min=arr1[0];
if(arr1[j]>=arr1[i]){
min=arr1[i];
}else{
min=arr1[j];
}
}
}
System.out.println("最大值是:"+max);
System.out.println("最小值是:"+min);
System.out.println("總數是:"+sum);
System.out.println("平均數數是:"+sum/5);
}
}
package com.hanqi.maya.test;
import java.util.Scanner;
public class Xingzuo {
private static String[] xzName = { "白羊", "金牛", "雙子", "巨蟹", "獅子", "處女", "天秤", "天蠍", "射手", "摩羯", "水瓶", "雙魚" };
private static String[] xzDate = { "03月21日─04月20日", "04月21日─05月20日", "05月21日─06月21日", "06月22日─07月22日", "07月23日─08月22日", "08月23日─09月22日", "09月23日─10月22日", "10月23日─11月21日", "11月22日─12月21日", "12月22日─01月19日", "01月20日─02月18日", "02月19日─03月20日" };
public static void check(){
Scanner sc=new Scanner(System.in);
System.out.println("請輸入你要查詢的星座");
String[] ch=(sc.nextLine()).split("座");//儘量不使用漢字作為分割
int x=0;//判斷變數
for(int j=0;j<ch.length;j++){
for (int i = 0; i < xzName.length; i++) {
if(ch[j].equals(xzName[i])){
System.out.println(xzName[i]+"座的出生日期是:"+xzDate[i]);
x++;//匹配成功一次,變數+1
sc.close();
}/*else{
System.out.println("請輸入正確的十二星座名,僅兩個漢字");
}*/
}
}
if(x!=ch.length){//如果最終變數的值不等於陣列長度,也就說明有的輸入的值沒有被匹配到
System.out.println("您輸入的可能不全是星座");
}
}
}
package com.hanqi.maya.test;
public class Testmain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test.Arr();
Xingzuo.check();
}
}