how2j.cn

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



3分7秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



示例 1 : 使用数组的局限性   
示例 2 : ArrayList存放对象   

示例 1 :

使用数组的局限性

edit
如果要存放多个对象,可以使用数组,但是数组有局限性
比如 声明长度是10的数组
不用的数组就浪费了
超过10的个数,又放不下
package collection; import charactor.Hero; public class TestCollection { public static void main(String[] args) { //数组的局限性 Hero heros[] = new Hero[10]; //声明长度是10的数组 //不用的数组就浪费了 //超过10的个数,又放不下 heros[0] = new Hero("盖伦"); //放不下要报错 heros[20] = new Hero("提莫"); } }
package charactor; public class Hero { public String name; public float hp; public int damage; public Hero() { } // 增加一个初始化name的构造方法 public Hero(String name) { this.name = name; } // 重写toString方法 public String toString() { return name; } }
示例 2 :

ArrayList存放对象

edit
为了解决数组的局限性,引入容器类的概念。 最常见的容器类就是
ArrayList
容器的容量"capacity"会随着对象的增加,自动增长
只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题。
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { @SuppressWarnings("rawtypes") public static void main(String[] args) { //容器类ArrayList,用于存放对象 ArrayList heros = new ArrayList(); heros.add( new Hero("盖伦")); System.out.println(heros.size()); //容器的容量"capacity"会随着对象的增加,自动增长 //只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题。 heros.add( new Hero("提莫")); System.out.println(heros.size()); } }


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2019-04-03 list添加问题
永动机



在往list里添加的时候会覆盖前面的数据是为啥?
public static void main(String args[]){
		List<Hero> heros = new ArrayList<>();
		//放进容器内
		for(int i = 0 ; i < 5; i++){
			
			heros.add(new Hero("hero"+i));
			System.out.println(heros);
			
		}
}

							


3 个答案

永动机 答案时间:2019-04-15
原来是把heros写成静态了。。。。

撸啊撸代码 答案时间:2019-04-09
因为你每次添加数据的时候都重新创建了一个集合

AINI623821CCL 答案时间:2019-04-03
heros = heros.add(new Hero("hero"+i));
这样试一下



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-03-25 这是什么情况,提示缺少类 怎么处理啊大佬们
so2009



The import charactor cannot be resolved

							

							


2 个答案

Renew 答案时间:2019-04-01
你添加一个类就好啦

李阶平 答案时间:2019-03-26
character类是前面的学习过程中自己写的,你没写当然没有这个类。自己写个类就有了



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-02-28 HashSet原理问题
2018-10-16 Hero不能实例化
2018-10-16 Hero不能实例化
2018-08-22 作业!!!为啥顺序不一样!?
2017-10-13 这个 代码是抑制错误的吗?
2017-09-22 集合框架和JAVA框架有联系么
2017-09-21 站主能不能出一些关于堆,栈,二叉树等数据结构的内容
2017-09-15 关于示例2
2017-08-19 toString方法的问题
2017-05-20 Hero 的复数形式是 Heroes 哦:)
2016-10-18 线程安全那个地方报错额
2016-07-25 add方法问题
2016-07-25 莫名其妙的错误




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 中级-集合框架-与数组的区别 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 984886441
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图