48.【Java 基础之对象数组(偏难)】

2年前 (2022) 程序员胖胖胖虎阿
229 0 0

对象数组

  • 1.对象数组的定义:
  • 2.对象数组的定义格式:
  • 3.基本演练(设置对象数组)
  • 4.基本演练 (键盘输入对象数组)
  • 5.对象数组基本演练(求平均值且判断)
  • 6.超级综合训练:

1.对象数组的定义:

对象数组就是数组里的每个元素都是类的对象,赋值时先定义对象,然后将对象直接赋给数组就行了。

2.对象数组的定义格式:

   类名 []类对象 =new 类名[参数];  //定义类对象数组
   类名 类对象 =new 类名(); //定义类对象

3.基本演练(设置对象数组)

类文件:

import java.util.Random;
public class Sort {
    private String id;
    private String name;
    private double price;
    private int count;
    public Sort() {
    }
    public Sort(String id, String name, double price, int count) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.count = count;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
}

主文件:

import java.util.Random;
public class hello {

    public static void main(String []avgs) {
        Sort []s=new Sort[3];    //设置对象数组的格式:
        s[0]=new Sort("01","水杯",21,20);
        s[1]=new Sort("02","MAYI ",25,20);
        s[2]=new Sort("03","sdsfd",28,30);
        for(int i=0;i<s.length;i++){
            System.out.println(s[i].getName()+" "+s[i].getId()+" "+s[i].getCount()+" "+s[i].getPrice());
        }
    }
}

4.基本演练 (键盘输入对象数组)

类文件:

import java.util.Random;
public class Sort {
private String breed;
private int price;
private String color;
public Sort(){}
    public Sort(String breed,int price,String color){
    this.breed=breed;
    this.price=price;
    this.color=color;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}


主文件:

import java.util.Random;
import java.util.Scanner;
public class hello {

    public static void main(String []avgs) {
        Scanner sc = new Scanner(System.in);
       Sort []s=new Sort[3];         //设置对象数组
       for(int i=0;i<s.length;i++){
           Sort ss=new Sort();      //设置对象ss
           System.out.println("请输入汽车的品牌:");
           String breed=sc.next();
           ss.setBreed(breed);
           System.out.println("请输入您的价格:");
           int price=sc.nextInt();
           ss.setPrice(price);
           System.out.println("请输入您的颜色:");
           String color=sc.next();
           ss.setColor(color);
           s[i]=ss;     //把ss传给对象数组
       }
       for(int i=0;i<s.length;i++){
           System.out.println(s[i].getBreed()+" "+s[i].getPrice()+" "+s[i].getColor());
       }
    }
}

5.对象数组基本演练(求平均值且判断)

类文件:

import java.util.Random;
public class Sort {
private String breed;
private int price;
private String color;
public Sort(){}
    public Sort(String breed,int price,String color){
    this.breed=breed;
    this.price=price;
    this.color=color;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

主文件;

import java.util.Random;
import java.util.Scanner;
public class hello {
    public static void main(String []avgs) {
        Scanner sc = new Scanner(System.in);
       Sort []s=new Sort[3];
       for(int i=0;i<s.length;i++){
           Sort ss=new Sort();
           System.out.println("请输入汽车的品牌:");
           String breed=sc.next();
           ss.setBreed(breed);
           System.out.println("请输入您的价格:");
           int price=sc.nextInt();
           ss.setPrice(price);
           System.out.println("请输入您的颜色:");
           String color=sc.next();
           ss.setColor(color);
           s[i]=ss;
       }
       double sum=0.0;
        for(int i=0;i<s.length;i++){
            sum+=s[i].getPrice();
        }
        System.out.println("平均值为:"+(sum/3));
        int count=0;
        for(int i=0;i<s.length;i++){
            if((sum/3)>=s[i].getPrice()){
                count++;
                System.out.println(s[i].getBreed()+" "+s[i].getPrice()+" "+s[i].getColor());
            }
        }
        System.out.println("比平均值低的有:"+count+"个");
    }
}

6.超级综合训练:

定义一个长度为3的数组,数组储存1~3名学生对象作为初始数据,学生对象的学号、姓名各不相同。
学生的属性:学号,兴民,年龄。
要求1.再次添加一个学生对象,并在添加的时候进行唯一性判断.
要求2:添加完毕之后,遍历所有学生的信息
要求3:通过id删除学生信息,如果存在,则删除。如果不存在则提示失败
要求4:删除完毕之后,遍历所有的学生信息。
要求5:查询数组id为 21032114 的学生,如果存在,则将他的年龄+1;

类文件:

import java.util.Random;
public class Sort {
    private String name;
    private int  number;
    private int age;
    public Sort() {
    }
    public Sort(String name, int number, int age) {
        this.name = name;
        this.number = number;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

主文件:
1.判断是否学号相等:

 public static boolean judgeSimlar(Sort []s,int id){
        for(int i=0;i<s.length;i++){
            if(s[i].getNumber()==id){
                return true;
            }
        }
        return false;
    }  //

2.判断原始数组是否已经沾满

public static int  Count(Sort[]s){
        int count=0;
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){        //假如说不为空的前提下,有多少个空间
            count++;}
        }
        return count;
    } //判断下表数量

3.创造新的数组

 public static Sort[] CreatArr(Sort[]s){
        Sort []newArr=new Sort[s.length+1];
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){
            newArr[i]=s[i];}
        }
        return newArr;
    } //创造心得数组

4.打印遍历:

public static void show(Sort[]s){
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){
            System.out.println(s[i].getName()+" "+s[i].getNumber()+" "+s[i].getAge());
        }
        }
    }//打印输出

5.删除元素:

 public static void cc(Sort[]s,int id){
        if(clear(s,id)<0){  //假如说不存在
            System.out.println("不存在删除失败!");
        }
        if(clear(s,id)>=0){
            s[clear(s,id)]=null;
            show(s);
        }
    }//删除元素

6.判断id是否相等

 public static int clear(Sort[]s,int id){
        int i=0;
        for(i=0;i<s.length;i++){
            if(s[i]!=null){
                if(s[i].getNumber()==id){
                    return i;
                }
            }
        }
        return -1;
    }//判断是否是相同的id

7.增加年龄

 public static void add(Sort[]s,int id){
        int number=0;
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){
                if(clear(s,id)<0){
                    System.out.println("不存在");
                }
                else {
                    number=s[i].getAge();
                    number+=1;
                }
            }
        }
        System.out.println(number);
    }

完整主文件:


public class hello {
    public static void main(String []avgs) {
    Sort []s=new Sort[3];
    s[0]=new Sort("小明",21032114,25);
    s[1]=new Sort("小红",21032115,20);
    s[2]=new Sort("小黑",21032116,23);
    Sort s4=new Sort("小紫",21032118,20);
    int id=s4.getNumber();
    //进行判断是否有相同的id,有相同的就让他们重新输入.不相同的话继续判断里面的内存问题,然后再进行输出
        boolean flag=judgeSimlar(s,id);
        if(flag){
            System.out.println("您输入的信息已经存在,请您在输入一个数字!");
        }
        else{
            //假如说不相同的话,就要添加数组了,此时我们要考虑一下内存的问题,如果内存狗的话那么就直接写,内存不够的话就要重新加u
            if(s.length==Count(s)){    //假如说相等的话,就要新加一个数组
                Sort []newArr=CreatArr(s);//实际上是 :new Sort[s.length+1];
                newArr[newArr.length-1]=s4;
               // cc(newArr,21032115);
                add(newArr,21032115);
            }
            else{     //假如说没有满的情况下,那么我们就把它直接操作,下标就是我们添加的位置
                    s[Count(s)]=s4;
                //cc(s,21032115);  删除
                add(s,21032115);
            }
        }
    }
    public static void add(Sort[]s,int id){
        int number=0;
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){
                if(clear(s,id)<0){
                    System.out.println("不存在");
                }
                else {
                    number=s[i].getAge();
                    number+=1;
                }
            }
        }
        System.out.println(number);
    }
    public static int clear(Sort[]s,int id){
        int i=0;
        for(i=0;i<s.length;i++){
            if(s[i]!=null){
                if(s[i].getNumber()==id){
                    return i;
                }
            }
        }
        return -1;
    }//判断是否是相同的id
    public static void cc(Sort[]s,int id){
        if(clear(s,id)<0){  //假如说不存在
            System.out.println("不存在删除失败!");
        }
        if(clear(s,id)>=0){
            s[clear(s,id)]=null;
            show(s);
        }


    }//删除元素
    public static void show(Sort[]s){
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){
            System.out.println(s[i].getName()+" "+s[i].getNumber()+" "+s[i].getAge());
        }
        }
    }//打印输出
    public static Sort[] CreatArr(Sort[]s){
        Sort []newArr=new Sort[s.length+1];
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){
            newArr[i]=s[i];}
        }
        return newArr;
    } //创造心得数组
    public static int  Count(Sort[]s){
        int count=0;
        for(int i=0;i<s.length;i++){
            if(s[i]!=null){        //假如说不为空的前提下,有多少个空间
            count++;}
        }
        return count;
    } //判断下表数量
    public static boolean judgeSimlar(Sort []s,int id){
        for(int i=0;i<s.length;i++){
            if(s[i].getNumber()==id){
                return true;
            }
        }
        return false;
    }  //
        }

版权声明:程序员胖胖胖虎阿 发表于 2022年9月14日 上午1:40。
转载请注明:48.【Java 基础之对象数组(偏难)】 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...