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();
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初识字节流+实现缓冲字节流OutputStream的主要方法构造方法读关流实现BufferedInputStream实现BufferedOutputStream为什么read()返回的是Int型而不是

    java中的IO流可以分为两种:字符流和字节流 字符流,顾名思义,就是对字符进行操作,只能操作文本文件 字节流,就是对字节进行操作,然而所有文件都是由字...

    用户1174983
  • 简单的Writer和ReaderWriter的主要方法Writer工作原理Reader的主要方法readLine():String

    Writer用于写出去到文件中,Reader用于将外面的文件读进来控制台 Writer和Reader有许多子类,但是子类大多都是直接运用父类Writer和R...

    用户1174983
  • 怎么改变按钮的图标

    按钮的图标一开始很难看 所以要改 改变按钮图标的方法: javax.swing.AbstractButton中的方法 setContentAreaF...

    用户1174983
  • 怎么实现关闭窗口

    思路:在java源文件中查找源代码 首先,我们知道JFrame.setDefaultCloseOperation(int operation)中提供了四种方...

    用户1174983
  • 矩阵的基本知识构造重复矩阵的方法——repmat(xxx,xxx,xxx)构造器的构造方法单位数组的构造方法指定公差的等差数列指定项数的等差数列指定项数的lg等差数列sub2ind()从矩阵索引==》

    要开始学Matlab了,不然就完不成任务了 java中有一句话叫作:万物皆对象 在matlab我想到一句话:万物皆矩阵 矩阵就是Java中的数组 ...

    用户1174983
  • SequenceInputStreamSequenceInputStream构造方法读关流刷新

    SequenceInputStream从名字上看, 他是一个序列字节输入流 既然是个序列 那么意味着 SequenceInputStream装着许多的输...

    用户1174983
  • 递归思想解决输出目录下的全部文件

    刚刚了解了下递归思想 递归就是在方法内调用本方法 下面说一个实际的应用 输出目录下的全部文件,当目录中还有目录时,则进入目录输出里面的文件 import j...

    用户1174983
  • 在Java中如何实现“Pless presss any key to continue.”

    import java.util.*; class Continue{ public static void main(String[] args){ ...

    用户1174983
  • NotSerializableException解决方法NotSerializableException

    NotSerializableException 问题描述: 想要写入对象的时候的时候回抛出NotSerializableException:类名 原因: ...

    用户1174983
  • java.io.StreamCorruptedException: invalid type code: AC错误的解决方法

    问题描述: 在向一个文件写入可序列化对象时,每次只想向文件的末尾添加一个可序列化的对象,于是使用了FileOutputStream(文件名,true)间接的构建...

    用户1174983

扫码关注云+社区

领取腾讯云代金券