java初学者日志_数组

数组的基本特点:
1.数组长度是确定的,一旦被创建,就不能改变
2.数组元素类型必须相同
3.数组类型可以是任何数据类型,包括基本类型和引用类型
4.数组变量属于引用类型,数组也是对象
数组是对象,那么数组中的元素就是对象的属性,所以当创建完数组还未开始赋值的时候,数组中元素的值为各个类型的默认初始值

public class test_01 {
    public static void main(String[] args) {
        int[] s;
        //动态赋值
      /*  int[] j=new j[3];
        j[0]=1;
        j[1]=10;
        j[2]=11;
        */
        s=new int[10];
        for (int i=0;i<10;i++){
            //s[i]=2*i+1;//数组是对象,数组中的元素就是对象的属性
            System.out.print(s[i]+"\t");
        }
    }
}

在这里插入图片描述

import java.util.Arrays;

class MAN{
    private int id;
    private int age;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String toString(){
        return "id:"+id+",age:" +age;
    }
    public MAN(){};
    public MAN(int id, int age){
        this.id=id;
        this.age=age;
    }
}
public class test_2 {
    public static void main(String[] args) {
        MAN[] mans={
                new MAN(1,11),
                new MAN(2,22),
                new MAN(3,33),
                new MAN(4,44),
                new MAN(5,55)
        };
        //System.out.println(mans);
        for(int i=0;i<mans.length;i++){
            MAN man=mans[i];
        System.out.println(man);
        }
        //增强for循环(读取元素的值)
        for(MAN man:mans){
            System.out.print(man+"\t");
        }
    }
 }

Arrays类测试

import java.lang.reflect.Array;
import java.util.Arrays;
public class gongjv {
    public static void main(String[] args) {
        int[] a={100,10,60,8,200,300,400};
        int[] b={1,2,33,15,4,6,8,99,38,76,56};
        int[] c={10,2,33,15,4,6,8,99,38,76,56};
        //输出数组的内容,此处Arrays.toString是Arrays的静态方法
        System.out.println(Arrays.toString(a));
        //从小到大进行排序.
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        //使用二分查找法,查找之前必须先对数组排序
        Arrays.sort(b);
        System.out.println(Arrays.toString(b));
        System.out.println("该元素的索引:"+Arrays.binarySearch(b,8));
        //对数组进行填充
        System.out.println("填充前的数组C:"+Arrays.toString(c));
        Arrays.fill(c,2,5,20);
        System.out.println("填充后的数组C:"+Arrays.toString(c));
    }
}

数组的拷贝

public class test_zhengqiang {
    public static void main(String[] args) {
        String[] ss={"aa","bb","cc","dd","ee","ff"};
        String[] gg=new String[6];
        //数组拷贝
        System.arraycopy(ss,1,gg,0,3);
        for(int i=0;i<gg.length;i++) {
            System.out.println(gg[i]);
        }
        //增强for循环专门读取数组或集合中所有元素
        for(String temp:ss){
            System.out.println(temp);
        }
    }
}

在这里插入图片描述
二维数组

public class test_erwei {
    public static void main(String[] args) {
        //二维数组的声明
        int[][] a=new int[3][];
        a[0]=new int[3];
        a[1]=new int[4];
        a[2]=new int[5];
        int[][] b={{1,2,3,4},{5,6,7},{8,9}};
        System.out.println(b[1][2]);
    }
}

在这里插入图片描述
使用二维数组存放表格数据

import java.util.Arrays;

public class test_liebiao {
    public static void main(String[] args) {
        Object[] a1={1001,"张三",18,"学生","2019-10"};
        Object[] a2={1002,"李四",17,"班长","2019-11"};
        Object[] a3={1003,"王五",19,"学习委员","2019-12"};
        Object[][] temp=new Object[3][];
        temp[0]=a1;
        temp[1]=a2;
        temp[2]=a3;
        for(int i=0;i<temp.length;i++) {
            for(int j=0;j<temp[i].length;j++) {
                System.out.print(temp[i][j]+"\t");
            }
            System.out.println("");
        }
        //System.out.println(Arrays.toString(temp[0]));
    }
}
import java.util.Arrays;
class Emp{
    private int id;
    private String name;
    private int age;
    private String job;
    private String hire;

    public Emp(){}
    public Emp(int id, String name, int age, String job, String hire) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.job = job;
        this.hire=hire;
    }
    public int getId() { return id; }
    public void setId(int id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getAge() { return age+"岁"; }
    public void setAge(int age) { this.age = age; }
    public String getJob() { return job; }
    public void setJob(String job) { this.job = job; }
    public String getHire() { return hire; }
    public void setHire(String hire) { this.hire = hire; }
    public String toString(){
        return getId()+"\t"+getName()+"\t"+getAge()+"\t"+getJob()+"\t"+getHire();
    }
}
public class test_javabean {
    public static void main(String[] args) {
        Emp emp1=new Emp(1001,"张三",12,"程序员","2019-10");
        Emp emp2=new Emp(1002,"李四",17,"设计师","2019-11");
        Emp emp3=new Emp(1003,"王五",19,"产品经理","2019-12");
        //Emp[] emps={emp1,emp2,emp3}
        Emp[] emps=new Emp[3];
        emps[0]=emp1;
        emps[1]=emp2;
        emps[2]=emp3;
        for(int i=0;i<emps.length;i++) {
            System.out.println(emps[i].getId()+" "+emps[i].getName());
        }
        for(int i=0;i<emps.length;i++) {
            //for(int j=0;j<emps[i])
            System.out.println(emps[i]);
        }
    }
}

小练习
嵌套循环未能实现

class shangpin{
    private int id;
    private String name;
    private String xinghao;
    private double jiage;
    private double zhekou;

    public shangpin(){}
    public shangpin(int id, String name, String xinghao, double jiage, double zhekou) {
        this.id = id;
        this.name = name;
        this.xinghao = xinghao;
        this.jiage = jiage;
        this.zhekou = zhekou;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getXinghao() {
        return xinghao;
    }

    public void setXinghao(String xinghao) {
        this.xinghao = xinghao;
    }

    public double getJiage() {
        return jiage;
    }

    public void setJiage(double jiage) {
        this.jiage = jiage;
    }

    public double getZhekou() {
        return zhekou;
    }

    public void setZhekou(double zhekou) {
        this.zhekou = zhekou;
    }
    public String toString(){
        return getId()+"\t"+getName()+"\t"+getXinghao()+"\t"+getJiage()+"\t"+getZhekou();
    }

}

public class test_job {
    public static void main(String[] args) {
        shangpin sp1=new shangpin(1,"鼠标","BZ_001",99.21,0.9);
        shangpin sp2=new shangpin(2,"玩偶","WO_035",401.1,0.79);
        shangpin sp3=new shangpin(3,"书  ","BK_024",30.1,0.87);
        shangpin sp4=new shangpin(4,"西装","XZ_011",499.21,0.89);
        shangpin sp5=new shangpin(5,"手机","SJ_003",1999.21,0.79);
        shangpin[] sps=new shangpin[5];
        sps[0]=sp1;
        sps[1]=sp2;
        sps[2]=sp3;
        sps[3]=sp4;
        sps[4]=sp5;
        System.out.println(sps[1].getId());
       /* for(int i=0;i<sps.length;i++){
            System.out.println(sps[i]);
        }*/
        for(int i=0;i<sps.length;i++){
            if(sps[i].getJiage()*sps[i].getZhekou()>100.0) {
                System.out.println(sps[i]);
                System.out.println("商品最终售价为:"+sps[i].getJiage()*sps[i].getZhekou());
            }/*else{
                System.out.println(sps[i]);
            }*/
        }
    }
}

若一个数组中有多个数据类型,该如何比较?

可以使用comparable接口,

package com.shuzu;
import java.util.Arrays;
public class TestComparable {
    public static void main(String[] args) {
        Man2[] manss={
                new Man2(3,"a"),
                new Man2(6,"b"),
                new Man2(1,"c")
        };
        Arrays.sort(manss);
        System.out.println(Arrays.toString(manss));
    }


class Man2 implements Comparable
{
    int age;
    int id;
    String name;
    public Man2(int age,String name){
        super();
        this.age=age;
        this.name=name;
    }
    public String toString(){
        return this.name;
    }
    public int compaerTO(Object o){
        Man2 man=(Man2) o;
        if(this.age<man.age){
            return -1;
        }
        if(this.age>man.age){
            return 1;
        }
        return 0;
    }
}

二分查找

import java.util.Arrays;
public class test_erfen {
    public static void main(String[] args) {
        int[] ef={2,5,66,61,54,16,3,1,14,25,106,84,63,654,44,35,1654,6,456,4};
        int srarchWord = 14;
        Arrays.sort(ef);
        System.out.println(Arrays.toString(ef));
        System.out.println(srarchWord+"元素的索引:"+binarySearch(ef,srarchWord));
    }
    public static int binarySearch(int[] ef,int srarchWord){
        int low=0;
        int high=ef.length-1;
        while (low<=high){
            int middle =(low+high)/2;
            if(srarchWord==ef[middle]){
                return middle;
            }
            if(srarchWord<ef[middle]){
                high=middle-1;
            }
            if(srarchWord>ef[middle]){
                low=middle+1;
            }
        }
        return -1;
    }
}

冒泡排序

public class test_maopao {
    public static void main(String[] args) {
        int[] mp={3,5,4,91,51,2,12,335,15,994,442};
        bubbleSort(mp);
        System.out.println(Arrays.toString(mp));

    }
    public static void bubbleSort(int[] mp){
        int temp=0;
        for(int i=0;i<mp.length;i++){
            for(int j=0;j<mp.length-1;j++){
                if(mp[j]>mp[j+1]){
                    temp=mp[j+1];
                    mp[j+1]=mp[j];
                    mp[j]=temp;
                }
            }
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值