public static void main(String[] args) {
//定义一个数组存储商品
Goods[] arr = new Goods[3];
//创建3个商品对象
Goods g1 = new Goods(1001, "手机", 1999, 100);
Goods g2 = new Goods(1002, "手提包", 2000, 90);
Goods g3 = new Goods(1003, "鞋子", 300, 500);
//添加商品到数组
arr[0]=g1;
arr[1]=g2;
arr[2]=g3;
//遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i].getGoodsName()+','+arr[i].getPrize()+","+arr[i].getStock());
}
}
import java.util.Scanner;
public class CatText {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
//创建数组
Cat[] arr=new Cat[3];
//键盘录入加入数组
for(int i=0;i<=2;i++) {
//创建汽车对象
Cat c1=new Cat();
System.out.print("请输入汽车品牌:");
String a = sc.next();
System.out.print("请输入汽车价格:");
int b = sc.nextInt();
System.out.print("请输入汽车颜色:");
String c = sc.next();
c1.setBrand(a);
c1.setPrize(b);
c1.setColour(c);
//存储到数组
arr[i]=c1;
}
//遍历数组;
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i].getBrand()+','+arr[i].getPrize()+','+arr[i].getColour());
}
}
public static void main(String[] args) {
//定义数组
Phone[] arr=new Phone[3];
//创建手机对象
Phone p1=new Phone("vivo",1999,"白色");
Phone p2=new Phone("小米",4999,"蓝色");
Phone p3= new Phone("苹果",3999,"白色");
//添加到数组
arr[0]=p1;
arr[1]=p2;
arr[2]=p3;
//遍历数组
//求和
int add=0;
for (int i = 0; i < arr.length; i++) {
add+=arr[i].getPrize();
}
//打印平均价格
double avg=add*1.0/ arr.length;
System.out.println("三部手机的平均价格为:"+avg);
}
public static void main(String[] args) {
girlFriend[] friends=new girlFriend[4];
//定义4个女朋友对象
girlFriend g1=new girlFriend();
girlFriend g2=new girlFriend();
girlFriend g3=new girlFriend();
girlFriend g4=new girlFriend();
//存放进数组
friends[0]=g1;
friends[1]=g2;
friends[2]=g3;
friends[3]=g4;
//set_age
g1.setAge(22);
g2.setAge(19);
g3.setAge(20);
g4.setAge(23);
//add
int add=0;
for (int i = 0; i < friends.length; i++) {
add+=friends[i].getAge();
}
//计算平均age
double avg_age=add*1.0/friends.length;
//统计年龄比平均值低5的
//记录有几个
int count=0;
for (int i = 0; i < friends.length; i++) {
if(avg_age>friends[i].getAge()){
count++;
System.out.println(friends[i].getAge());
}
}
System.out.println(count);
}
前二个问:
public static void main(String[] args) {
//定义数组
Student[] arr=new Student[3];
//创建学生对象并添加到数组
Student stu1=new Student(1,"张三",23);
Student stu2=new Student(2,"李四",22);
Student stu3=new Student(3,"王五",24);
//把学生对象添加到数组当中
arr[0]=stu1;
arr[1]=stu2;
arr[2]=stu3;
//第一题:此时有2种情况,可能数组已经存满需要新的数组,可能没有存满直接添加.
//创建一个新的学生对象.
Student stu4=new Student(4,"zaolu",25);
//判断id是否存在
boolean flag=select(arr,stu4.getId());
if(flag){
System.out.println("当前学生id已经存在,无需添加!");
}else{
//1.判断原有数组是否存满
if(count(arr)== arr.length){
//存满,则复制原有数组元素,添加到一个新的数组
Student[] new_arr=copynuwarr(arr);
//添加新的学生到新的数组
new_arr[arr.length]=stu4;
//把创建的新数组地址赋值给以前的数组
arr=new_arr;
}else {
//没有存满,则直接把新的学生添加进缘来的数组
arr[count(arr)]=stu4;
}
}
//第二问:添加完毕后,遍历所有学生信息
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i].getId()+","+arr[i].getName()+','+arr[i].getAge());
}
//第三位通过学生id删除学生;
}
//定义一个查看数组是否重复的方法
public static boolean select(Student[] num,int id){
for (int i = 0; i < num.length; i++) {
if (num[i].getId()==id){
return true;
}
}
return false;
}
//定义一个方法统计数组里的元素个数
public static int count(Student[] num){
//记录个数
int count=0;
for (int i = 0; i < num.length; i++) {
if (num[i]!=null){
count++;
}
}
return count;
}
//定义一个方法添加一个性的学生到一个新的数组.
public static Student[] copynuwarr(Student[] num){
//创建一个新的数组
Student[] newarr=new Student[num.length+1];
//复制原有数组元素到新的数组
for (int i = 0; i < num.length; i++) {
newarr[i]=num[i];
}
return newarr;
}
后二问:
该题需要注意的是要删除一个学生,则要找到该学生在数组对应的索引,把对应索引的值改为null则成功删除了该学生,在查找索引的时候要注意数组中可能存在null值,直接进行判断会报错,所以要先确保学生在这个数组中。
public static int select(Student[] num,int id){
for (int i = 0; i < num.length; i++) {
//判断每个学生对象都存在数组当中,排除不存在的索引位(数组中已经存在的学生id),防止报错
Student stu=num[i];
if(stu!=null){
if(id==stu.getId()){
return id;
}
}
}
return -1;// Java中不存在-1索引.
}
完整代码:
public static void main(String[] args) {
//定义数组
Student[] arr=new Student[3];
//创建学生对象并添加到数组
Student stu1=new Student(1,"张三",23);
Student stu2=new Student(2,"李四",22);
Student stu3=new Student(3,"王五",24);
//把学生对象添加到数组当中
arr[0]=stu1;
arr[1]=stu2;
arr[2]=stu3;
Scanner sc=new Scanner(System.in);
//问题3:通过id删除学生信息,存在则删除,不存在,则提示
//1.键盘接收要查找的学生信息
System.out.print("请输入你要删除的学生id:");
int input_id=sc.nextInt();
//2.判断该id在数组中是否存在
int answer=select(arr,input_id);
//2.1 不存在,则给出不存在提示
if (answer==-1){
System.out.println("该id在数据中不存在!");
}else {
//2.2 存在,删除
arr[answer]=null;
System.out.println("删除成功!");
}
//查看删除后的学生信息;
for (int i = 0; i < arr.length; i++) {
Student stu=arr[i];
//确保学生存在这个数组中,防止报错.
if(stu!=null){
//打印对应学生信息
System.out.println(stu.getId()+','+stu.getName()+','+stu.getAge());
}
}
}
//判断id是否存在方法;
public static int select(Student[] num,int id){
for (int i = 0; i < num.length; i++) {
//判断每个学生对象都存在数组当中,排除不存在的索引位(数组中已经存在的学生id),防止报错
Student stu=num[i];
if(stu!=null){
if(id==stu.getId()){
return id;
}
}
}
return -1;// Java中不存在-1索引.
}
最后一问:
public class StudentText3 {
public static void main(String[] args) {
//定义数组
Student[] arr=new Student[3];
//创建学生对象并添加到数组
Student stu1=new Student(1,"张三",23);
Student stu2=new Student(2,"李四",22);
Student stu3=new Student(3,"王五",24);
//把学生对象添加到数组当中
arr[0]=stu1;
arr[1]=stu2;
arr[2]=stu3;
Scanner sc=new Scanner(System.in);
System.out.print("请输入,你要查询的id:");
int id=sc.nextInt();
int num=select(arr,id);
if (num==-1){
System.out.println("该学生不存在");
} else if (num>=0) {
int old_age=arr[num].getAge();
arr[num].setAge(old_age+1);
}
//遍历所有学生
for (int i = 0; i < arr.length; i++) {
Student stu=arr[i];
if (stu!=null){
System.out.println(stu.getId()+stu.getName()+stu.getAge());
}
}
}
public static int select(Student[] num,int id){
for (int i = 0; i < num.length; i++) {
//判断每个学生对象都存在数组当中,排除不存在的索引位(数组中已经存在的学生id),防止报错
Student stu=num[i];
if(stu!=null){
if(id==stu.getId()){
return id;
}
}
}
return -1;// Java中不存在-1索引.
}
}