Java复习——对象数组
来源:互联网 发布:啪嗒砰3召唤奇迹数据 编辑:程序博客网 时间:2024/05/03 21:00
1、对象数组就是数组里的每个元素都是类的对象,赋值是先定义对象,然后将对象直接赋给数组。
示例: Monkey[] monkeys = new Monkey[10];
使用对象数组实现多个Monkey的管理。
注意:
1、当进行数组的动态扩展时,新数组的长度一般是当前数组长度的一半左右。
2、==(等号)比较的是对象的内存地址,比较基本类型时可以使用,
字符串中用equals方法比较其值,相等时返回true,否则返回false。
/** 对象数组*/import java.lang.*;import java.util.*;public class ObjectArrayDemo{ public static void main(String[] args){ MonkeyManager mm = new MonkeyManager(); //添加monkey测试 mm.add(new Monkey("悟空", '公')); mm.add(new Monkey("悟饭", '公')); mm.add(new Monkey("小白", '母')); mm.list(); System.out.println("-----------------------"); //删除monkey测试 mm.delete("悟饭"); mm.list(); System.out.println("-----------------------"); //查找monkey测试 Monkey m1 = mm.find("小白"); m1.print(); System.out.println("-----------------------"); //修改monkey测试 Monkey m2 = new Monkey("小白", '公'); mm.update(m2); mm.list(); System.out.println("-----------------------"); mm.add(new Monkey("小黑", '公')); mm.add(new Monkey("小红", '母')); mm.list(); }}/** Monkey管理类*/class MonkeyManager{ private Monkey[] monkeys = new Monkey[3]; private int count = 0;//当前对象的个数 //添加monkey public void add(Monkey m){ //当数组空间不足时,需要进行动态扩展 if(count >= monkeys.length){ //新数组的长度(当前数组长度的一半左右) int newLen = (monkeys.length * 3) / 2 + 1; monkeys = Arrays.copyof(monkeys.newLen); } if(count < monkeys.length){ monkeys[count] = m; count++; } } //遍历对象数组 public void list(){ for(int i = 0; i < count; i++){ monkeys[i].print(); } } //删除monkey public void delete(String name){ for(int i = 0; i < count; i++){ //equals:表示比较两个字符串对象的值是否相等 //==:表示比较两个对象的内存地址是否相等 if(monkeys[i].getName().equals(name)){ //循环把后面对象往前移动 for(int j = i; j < count - 1; j++){ monkeys[j] = monkeys[j + 1]; } //把最后一个元素赋值为null monkeys[count - 1] = null; count--; break; } } } //查找monkey public Monkey find(String name){ for(int i = 0; i < count; i++){ if(monkeys[i].getName().equals(name)){ return monkeys[i]; } } return null; } //修改monkey public void update(Monkey monkey){ Monkey m = find(monkey.getName()); if(m != null){ m.setSex(monkey.getSex()); } }}class Monkey{ private String name; private char sex; public Monkey(String name, char sex){ this.name = name; this.sex = sex; } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setSex(char sex){ this.sex = sex; } public char getSex(){ return sex; } public void print(){ System.out.println("name" + name + " " + "sex" + sex); }}
0 0
- Java复习——对象数组
- Java复习之对象数组
- 【黑马程序员】方法、数组、面向对象、封装、继承——Java复习笔记
- java复习 5数组 6对象
- java复习——一维数组
- java复习——二维数组
- java复习——数组常见异常
- Java基础复习—(数组,数据类型)
- java复习——类和对象
- Java复习笔记—面向对象
- Java复习笔记—面向对象2
- Java基础复习——数据类型、变量和数组
- 黑马程序员——Java基础 数组 (复习)
- Java复习笔记[3] —— 数组,函数,异常处理
- java基础复习之二——类和对象
- 黑马程序员—java基础复习—面向对象
- 黑马程序员—java基础复习—常用对象
- java复习二—— 类与对象
- 准确率Accuracy,精确度Precision,召回率Recall,F1值
- MybatisCT——(二)
- Fliptile POJ
- python学习参考及环境配置
- EventBus3.0详解
- Java复习——对象数组
- [leetcode]-543. Diameter of Binary Tree
- Android 获取当前系统语言及地区,并更改语言
- 50. Pow(x, n)
- STM32学习之路:第十三天
- L2-019. 悄悄关注
- caffe训练图片的问题及对策
- 蓝桥杯 2016 省赛B组 四平方和 (暴力)
- 线程的常用方法