首页 > 代码库 > Java之数组
Java之数组
数组概述
数组是具有相同数据类型的一组数据的集合。数组中的每个元素具有相同的数据类型。数组的长度是固定的。在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(); } }
Java之数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。