对象数组
- 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;
} //
}
相关文章
暂无评论...