ArrayList的分步new对象

码农高射炮 2017-10-09 10:12:20
private ArrayList aa=null;
spgl()
{
aa=new ArrayList();//
}
我想问一下,它这个地方为什么不直接ArrayList aa=new ArrayList
...全文
201 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2017-10-11
  • 打赏
  • 举报
回复
引用 8 楼 qq_36831368 的回复:
Sp sp=(Sp)aa.get(i); 这一行(Sp)有什么作用
这个是强制转换,就是说如果不添加(Sp),系统就不知道 ArrayList aa这个集合里保存的是什么对象,可能是Integer,可能是String,可能是Sp的对象 所以就不能Sp sp=(Sp)aa.get(i);这样用Sp的对象接收,因为aa.get(i)获取的是不确定的,系统不知道它是个什么东西,你添加了强制转换,就相当于 告诉系统,这里面保存的就是Sp的对象,所以才能用Sp sp接收 不想强制转换就ArrayList<Sp> aa = null;这样定义,声明List里面只能保存Sp
自由自在_Yu 2017-10-10
  • 打赏
  • 举报
回复
先声明,不初始化,这样不用分配内存空间,用到的时候再初始化 private修饰,设置访问权限,防止其他类访问 Sp sp=(Sp)aa.get(i); 不强制转换,不知道aa.get(i)是什么东东
码农高射炮 2017-10-10
  • 打赏
  • 举报
回复
Sp sp=(Sp)aa.get(i); 这一行(Sp)有什么作用
  • 打赏
  • 举报
回复
你这个是集合框架的数组集合ArrayList,你问的是,为什么先不new对象,而是后面在选择new对象?这个问题你需要了解ArrayList的算法即可知道为什么了,可以参照我的文章http://blog.csdn.net/Java_Dmz/article/details/78076872
小刀雨斑 2017-10-10
  • 打赏
  • 举报
回复
ArrayList<>() <>里面给类型,被定义为只能存放对应类型的数据,你没给类型,但是你自己知道存的是什么类型的 出来要转换 不转换你用不了该类型的方法
码农高射炮 2017-10-10
  • 打赏
  • 举报
回复
引用 4 楼 yuxiangaaaaa 的回复:
Sp sp=(Sp)aa.get(i); 不强制转换,不知道aa.get(i)是什么东东
就一个食品管理的类,底下是完整代码 class Spgl { private ArrayList aa=null; Spgl() { aa=new ArrayList(); } public void addsp(Sp sp) { aa.add(sp); System.out.println("添加食品成功!"); } public void spxx(String bh) { int i; for(i=0;i<aa.size();i++) { Sp sp=(Sp)aa.get(i); if(sp.getBianhao().equals(bh)) { System.out.println("该食品信息为:"); System.out.println("食品编号:"+bh); System.out.println("食品名称:"+sp.mingcheng); System.out.println("食品价格:"+sp.jiage+"元"); break; } } if(i==aa.size()) System.out.println("对不起,无此食品!"); } public void spjg(String bh,float jg) { int i; for(i=0;i<aa.size();i++) { Sp sp=(Sp)aa.get(i); if(sp.getBianhao().equals(bh)) { sp.setJiage(jg); System.out.println("修改食品价格成功!"); break; } } if(i==aa.size()) System.out.println("对不起,无此食品!"); } public void delsp(String bh) { int i; if(aa.size()==0) System.out.println("对不起,仓库中已没有任何食品!"); for(i=0;i<aa.size();i++) { Sp sp=(Sp)aa.get(i); if(sp.getBianhao().equals(bh)) { aa.remove(i); System.out.println("删除食品成功"); break; } } if(i==aa.size()) System.out.println("对不起,无此食品!"); } }
李德胜1995 2017-10-09
  • 打赏
  • 举报
回复
码农高射炮 2017-10-09
  • 打赏
  • 举报
回复
Sp sp=(Sp)aa.get(i);这个它为什么要强制转换为Sp类? public void spxx(String bh) { int i; for(i=0;i<aa.size();i++) { Sp sp=(Sp)aa.get(i); if(sp.getBianhao().equals(bh)) { System.out.println("该食品的信息为:"); System.out.println("食品编号:"+bh); System.out.println("食品名称:"+sp.getMingcheng()); System.out.println("食品价格:"+sp.getJiage()+"元"); break; } } if(i=aa.size()) System.out.println("对不起,无此食品!"); }
码农高射炮 2017-10-09
  • 打赏
  • 举报
回复
还有它为什么是用private修饰?

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧