1.test01
定义一个数组,存储三个商品对象,并将商品对象存储到一个数组中。
(1)先定义一个Goods类
package test;
public class Goods {
private String id;
private String name;
private double price;
private int count;//库存
//构造一个标准的javabean
//1.无参构造方法
public Goods() {
}
//2.构造带参方法
public Goods(String id,String name,double price,int count) {
this.id = id;
this.name = name;
this.price = price;
this.count = count;
}
//3.构造相应的get和set方法 get用于返回所需值,所以需要有返回类型;
//set用于设置所需值,需要形参传值,不需要返回值
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;
}
}
(2)再定义一个Goods测试类
package test;
public class GoodsTest {
public static void main(String args[]) {
//创建一个数组,Goods为创建的数据类型
Goods arr[] = new Goods[3];
//创建对象
Goods g1 = new Goods("001","华为P40",5999.0,100);
Goods g2 = new Goods("002","杯子",4999.2,100);
Goods g3 = new Goods("003","枸杞",99.9,100);
//将商品添加到数组中
arr[0] = g1;
arr[1] = g2;
arr[2] = g3;
//遍历
for(int i=0;i<arr.length;i++) {
Goods good = arr[i];
System.out.println(good.getId()+','+good.getName()+','+good.getPrice());
}
}
}
运行效果
001,华为P40,5999.0
002,杯子,4999.2
003,枸杞,99.9
2.test02
定义一个数组存储3部汽车对象,属性:品牌、价格、颜色。数据通过键盘录入而来,并把数据存储到数组中
(1)关于键盘录入
package test;
import java.util.*;
public class GoodsTest {
public static void main(String args[]) {
//键盘录入
//nextInt() 接受整数;nextDouble() 接收小数;next() 接受字符串
//遇到空格等会停止接收
/*
Scanner sc = new Scanner(System.in);
System.out.println("输入一个整数");
int m = sc.nextInt();
System.out.println(m);
*/
//nextLine();接受字符串,与上述方法不能混用!!
//先使用上面的方法会导致nextLine()接收不到数据
Scanner sc = new Scanner(System.in);
System.out.println("输入一个字符串");
String str = sc.nextLine();
System.out.println(str);
}
}
(2)建一个汽车类
package test;
public class Car {
private String brand;
private double price;
private String color;
public Car() {
}
public Car(String brand,int price,String color) {
this.brand = brand;
this.price = price;
this.color = color;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand=brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price=price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color=color;
}
}
(3)CarTest
package test;
import java.util.*;
public class CarTest {
public static void main(String args[]) {
//动态创建一个数组
Car arr[] = new Car[3];
//创建对象,由键盘录入
Scanner sc = new Scanner(System.in);
//写一个for循环,用于依次输入car的3个属性
for(int i=0;i<arr.length;i++) {
//未知值,用空参创造对象
Car c = new Car();
//录入品牌
System.out.println("请输入汽车品牌:");
String brand = sc.next();
c.setBrand(brand);
//录入价格
System.out.println("请输入汽车价格:");
double price = sc.nextDouble();
c.setPrice(price);
//录入颜色
System.out.println("请输入汽车颜色:");
String color = sc.next();
c.setColor(color);
//放入数组
arr[i]=c;
}
for(int i=0;i<arr.length;i++) {
Car c = arr[i];
System.out.println(c.getBrand()+","+c.getColor()+","+c.getPrice());
}
}
}
3.test03
定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。
学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息
如果存在,则删除,如果不存在,则提示删除失败。
要求4:删除完毕之后,遍历所有学生信息
要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁
(1)student类
package s_1003;
public class Student {
private int id;
private String name;
private int age;
//标准的javabean
public Student() {
}
public Student(int id,String name,int age) {
this.id = id;
this.name = name;
this.age = age;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
(2)test类
package s_1003;
import java.util.*;
public class test01 {
/*
* 定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。
学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息
如果存在,则删除,如果不存在,则提示删除失败。
要求4:删除完毕之后,遍历所有学生信息
要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁
*/
public static void main(String args[]) {
//1.创建数组
Student arr[] = new Student[3];
//2.创建学生对象
Student s1 = new Student(01,"zs",15);
Student s2 = new Student(02,"zs",16);
Student s3 = new Student(03,"zs",17);
//将对象存储到数组中
arr[0] = s1;
arr[1] = s2;
arr[2] = s3;
//创建一个新对象
Student s4 = new Student(04,"wk",18);
//判断是否唯一
boolean flag = isContains(arr,s4.getId());
if(flag) {
//如果存在则不需要添加
System.out.println("id重复,无需添加");
}else {
/*添加数组时,需判断数组是否已满
* 未满直接添加
* 已满需重新创建新数组,并将旧数组按顺序复制过来
*/
int count = Arr_full(arr);
if(count==arr.length) {
//重新创建数组并复制
Student newarr[] = Craete_arr(arr);
//插入新数组
newarr[count] = s4;
//遍历
//Print_arr(newarr);
//要求3:通过id删除学生信息
//键盘录入需要删除的id
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的id:");
int dete_id = sc.nextInt();
//查找id位置
int index = getIndex(newarr,dete_id);
if(index==-1) {
System.out.println("id不存在");
}else {
newarr[index] = null;
}
Print_arr(newarr);
}else {
//由于数组是按顺序添加的,所以未满时直接放到count位置上即可
arr[count]=s4;
//遍历
//Print_arr(arr);
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除的id:");
int dete_id = sc.nextInt();
//查找id位置
int index = getIndex(arr,dete_id);
if(index==-1) {
System.out.println("id不存在");
}else {
arr[index] = null;
}
Print_arr(arr);
}
}
}
//根据数组和id判断唯一
public static boolean isContains(Student arr[],int id) {
//循环遍历数组
for(int i=0;i<arr.length;i++) {
Student s0 = new Student();
int s0_id = s0.getId();
//要考虑到数组为空的情况,非空情况下进行值的判断,为空则直接进行下次循环
if(arr[i]!=null) {
if(s0_id == id) {
return true;
}
}
}
return false;
}
//根据数组判断存储空间
public static int Arr_full(Student arr[]) {
int count = 0;
for(int i=0;i<arr.length;i++) {
if(arr[i]!=null) {
count++;
}
}
return count;
}
//根据数组重新创建新数组,并复制旧数组
public static Student[] Craete_arr(Student arr[]) {
//新数组的长度==旧数组+1
Student newarr[] = new Student[arr.length+1];
for(int i=0;i<arr.length;i++) {
newarr[i] = arr[i];
}
return newarr;
}
//根据新或旧数组遍历
public static void Print_arr(Student arr[]) {
for(int i=0;i<arr.length;i++) {
Student s0=arr[i];
if(s0!=null) {
System.out.println(s0.getId()+","+s0.getName()+","+s0.getAge());
}
}
}
//根据新或旧数组和id查找id所在位置,使用标志-1来表示未找到
public static int getIndex(Student arr[],int id) {
for(int i=0;i<arr.length;i++) {
if(arr[i]!=null) {
Student s0=arr[i];
int d_id =s0.getId();
if(d_id==id) {
return i;
}
}
}
return -1;
}
}
仅供个人学习用,以上学习资源均来自https://www.bilibili.com/video/BV17F411T7Ao?p=95&vd_source=91fcbb937f3e01251f81ce1e559ce73e

601

被折叠的 条评论
为什么被折叠?



