java 创建自定义数组

 更新时间:2016年07月07日 12:01:53   转载 投稿:lqh  
本篇文章是关于java 如何自己创建自定义数组,这里给大家一个小实例,希望能帮助有所需要的同学

1.java创建自定义类数组方法:

Student []stu = new Student[3];
for(int i = 0; i < 3; i ++)
{
stu[i] = new Student();
}

2.否则会提示空指针异常

package project;
 
import java.io.*;
import java.util.Scanner;
class Student
{
  private int id;
  private String name;
  private int score;
   
  public void setId(int id)
  {
    this.id = id;
  }
  public int getId()
  {
    return this.id;
  }
  public void setName(String name)
  {
    this.name = name;
  }
  public String getName()
  {
    return this.name;
  }
  public void setScore(int score)
  {
    this.score = score;
  }
  public int getScore()
  {
    return this.score;
  }
}
public class project2 {
  File file = new File("E:/data.txt");
  FileWriter filewrite = null;
  BufferedWriter write = null;
  FileReader fileread = null;
  BufferedReader read = null;
  Student []stu = new Student[3];
  public void put()
  {
    try {
      filewrite = new FileWriter(file);
    } catch (IOException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
    }
    write = new BufferedWriter(filewrite);
    for(int i = 0; i < 3; i ++)
    {
      System.out.println("请输入第" + (i + 1) + "个学生的ID,姓名,成绩:");
      Scanner in = new Scanner(System.in);
      try {
        String str = in.nextLine();
        String data[] = str.split(" ");
        for(int j = 0; j < 3; j++)
        {
          write.write(data[j]);
          write.newLine();
        }
         
      } catch (IOException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
      }
       
    }
    try {
      write.close();
      filewrite.close();
    } catch (IOException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
    }
  }
   
   
  public void get()
  {
    int sum = 0;
    double ave;
    try {
      fileread = new FileReader(file);
    } catch (FileNotFoundException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
    }
    read = new BufferedReader(fileread);
    for(int i = 0; i < 3; i ++)
    {
      stu[i] = new Student();
      try {
        stu[i].setId(Integer.parseInt(read.readLine()));
        stu[i].setName(read.readLine());
        stu[i].setScore(Integer.parseInt(read.readLine()));
      } catch (Exception e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
      }
    }
     
    for(int i = 0; i < 3; i ++)
    {
      sum += stu[i].getScore();
    }
    ave = sum * 1.0/3;
    System.out.println("学生的平均成绩为:" + ave);
    try {
      read.close();
      fileread.close();
    } catch (IOException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
    }
  }
  public static void main (String []args)
  {
    project2 pro = new project2();
    pro.put();
    pro.get();
  }
}

    总结:

             这样我们就可以在项目当中,根据项目需求自己来定义想要的数组.

相关文章

  • 为什么阿里要慎重使用ArrayList中的subList方法

    为什么阿里要慎重使用ArrayList中的subList方法

    这篇文章主要介绍了为什么要慎重使用ArrayList中的subList方法,subList是List接口中定义的一个方法,该方法主要用于返回一个集合中的一段、可以理解为截取一个集合中的部分元素,他的返回值也是一个List。,需要的朋友可以参考下
    2019-06-06
  • Java中十进制和十六进制的相互转换方法

    Java中十进制和十六进制的相互转换方法

    下面小编就为大家带来一篇Java中十进制和十六进制的相互转换方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)

    springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)

    这篇文章主要介绍了springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)的相关资料,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-06-06
  • Mybatis多线程下如何使用Example详解

    Mybatis多线程下如何使用Example详解

    这篇文章主要给大家介绍了关于Mybatis多线程下如何使用Example的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • 解析使用jdbc,hibernate处理clob/blob字段的详解

    解析使用jdbc,hibernate处理clob/blob字段的详解

    本篇是对使用jdbc,hibernate处理clob/blob字段进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 基于Elasticsearch5.4的常见问题总结

    基于Elasticsearch5.4的常见问题总结

    下面小编就为大家分享一篇基于Elasticsearch5.4的常见问题总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Mybatis 中的<![CDATA[ ]]>浅析

    Mybatis 中的<![CDATA[ ]]>浅析

    本文给大家解析使用<![CDATA[ ]]>解决xml文件不被转义的问题, 对mybatis 中的<![CDATA[ ]]>相关知识感兴趣的朋友一起看看吧
    2017-09-09
  • Spring Boot 与 Vue.js 整合流程

    Spring Boot 与 Vue.js 整合流程

    本文重点介绍我在Spring Boot 与 Vue.js 整合实践过程中的基本流程,以及遇到的问题,感兴趣的朋友跟随小编一起看看吧
    2018-09-09
  • Java中值传递和引用传递的区别

    Java中值传递和引用传递的区别

    这篇文章主要介绍了Java中值传递和引用传递的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java中高效的判断数组中某个元素是否存在详解

    Java中高效的判断数组中某个元素是否存在详解

    相信大家在操作Java的时候,经常会要检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow中也是一个非常热门的问题。本文将分析几种常见用法及其时间成本,有需要的朋友们可以参考借鉴。
    2016-11-11

最新评论