给新数组arr2里的arr[新下标]的id属性赋值前 需要先给arr[新下标]初始化

Posted 胖豆芽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给新数组arr2里的arr[新下标]的id属性赋值前 需要先给arr[新下标]初始化相关的知识,希望对你有一定的参考价值。

package com.fqs.demo1;

import java.util.Scanner;

public class StudentTest2 
    public static void main(String args[]) 
        //1.新建一个3个长度的数组
        Student []arr=new Student[3];
        //2.初始化数组
        Student s0=new Student("stu000","s0",18);
        Student s1=new Student("stu001","s1",19);
        Student s2=new Student("stu002","s2",20);
        //3.3个值存到数组中
        arr[0]=s0;
        arr[1]=s1;
        arr[2]=s2;
        //4.从键盘获取第4个值
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学生的id");
        String s3id=sc.next();
        //将s3id存放到数组中
        //5.判断s3id在arr中isFind出现过吗
        //6.走到分岔路口,6.1出现过,键盘再次输入  6.2没出现过,存到arr[3]数组中 6.2是必须走的
        //6.1
        if(isFind(arr,s3id)) 
            while(isFind(arr,s3id))//当isFind为true时,提示再次输入,当isFind为false时停止
                System.out.println("请再次输入学生的id");
                 s3id=sc.next();
                 if(isFind(arr,s3id)==false) 
                     break ;
                 
            
            
        
        if(isFind(arr,s3id)==false) //不能是else   因为是顺序执行才对
        
            //6.2分两种情况 获取id非空的个数getNotNull(Student []arr); 
            //第一种 数组内有空 位置;第二种数组内无位置,需要新增数组
            //第一种
            int countok=getNotNull(arr);
            System.out.println("getNotNull(arr):"+countok);
            if(countok<arr.length) 
                System.out.println("arr[count].setId(s3id);");
                
                arr[countok].setId(s3id);
            
            //第二种
            else if(countok==arr.length) 
                //1.新建一个arr长度+1的数组arr2
                
                int len=arr.length+1;
                System.out.println("arr2的len:"+len);
                Student []arr2=new Student[len];
                for(int i=0;i<arr.length;i++) 
                    arr2[i]=arr[i];
                
                System.out.println("countok:"+countok);
                
                //先给arr2数组 初始化 数组[下标]关联Student
                Student sok=new Student();
                //将sok赋值给arr2[3]
                arr2[countok]=sok;
                //赋值数组[下标]里 id属性
                arr2[countok].setId(s3id);
                //8.打印数组arr2
                for(int i=0;i<arr2.length;i++) 
                    Student sok2=arr2[i];
                    System.out.println("arr2:"+sok2.getId()+" "+sok2.getName()+" "+sok2.getAge());
                
                
            
            
        
        //7.打印数组arr
        for(int i=0;i<arr.length;i++) 
            Student s=arr[i];
            System.out.println("arr:"+s.getId()+" "+s.getName()+" "+s.getAge());
        
        
        
    //结束主方法
//1.isFind 方法 获取boolean
//2.传入(Student[]arr,String s3id)
//3.有返回值
public static boolean isFind(Student[]arr,String s3id) 
    for(int i=0;i<arr.length;i++) 
        if(arr[i].getId()!=null&&arr[i].getId().equals(s3id)) 
            return true;
        
    
    return false;

//1.getNotNull 方法 获取int 数
//2.传入(Student[]arr)
//3.有返回值个数
public static int getNotNull(Student []arr) 
    int count=0;
    
    for(int i=0;i<arr.length;i++) 
        if(arr[i].getId()!=null) 
            count++;
            
        
    
    return count;
    

    


 

以上是关于给新数组arr2里的arr[新下标]的id属性赋值前 需要先给arr[新下标]初始化的主要内容,如果未能解决你的问题,请参考以下文章

Java-数组-面向对象

javascript数组赋值操作的坑

Java数组扩容

PHP学习记录

PHP数组

微信小程序 setData 数组赋值数组出错了?