how2j.cn

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



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



关键字 简介 示例代码
add
增加
示例代码
contains
判断是否存在
示例代码
get
获取指定位置的对象
示例代码
indexOf
获取对象所处的位置
示例代码
remove
删除
示例代码
set
替换
示例代码
size
获取大小
示例代码
toArray
转换为数组
示例代码
addAll
把另一个容器所有对象都加进来
示例代码
clear
清空
示例代码
练习-判断是否相同
示例代码
答案-判断是否相同
示例代码
练习-MyStringBuffer
示例代码
答案-MyStringBuffer
示例代码
步骤 1 : 增加   
步骤 2 : 判断是否存在   
步骤 3 : 获取指定位置的对象   
步骤 4 : 获取对象所处的位置   
步骤 5 : 删除   
步骤 6 : 替换   
步骤 7 : 获取大小   
步骤 8 : 转换为数组   
步骤 9 : 把另一个容器所有对象都加进来   
步骤 10 : 清空   
步骤 11 : 练习-判断是否相同   
步骤 12 : 答案-判断是否相同   
步骤 13 : 练习-MyStringBuffer   
步骤 14 : 答案-MyStringBuffer   

add 有两种用法
第一种是直接add对象,把对象加在最后面

heros.add(new Hero("hero " + i));

第二种是在指定位置加对象

heros.add(3, specialHero);
增加
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 把5个对象加入到ArrayList中 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } System.out.println(heros); // 在指定位置增加对象 Hero specialHero = new Hero("special hero"); heros.add(3, specialHero); System.out.println(heros.toString()); } }
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 :

判断是否存在

edit edit
通过方法contains 判断一个对象是否在容器中
判断标准: 是否是同一个对象,而不是name是否相同
判断是否存在
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); System.out.println(heros); // 判断一个对象是否在容器中 // 判断标准: 是否是同一个对象,而不是name是否相同 System.out.print("虽然一个新的对象名字也叫 hero 1,但是contains的返回是:"); System.out.println(heros.contains(new Hero("hero 1"))); System.out.print("而对specialHero的判断,contains的返回是:"); System.out.println(heros.contains(specialHero)); } }
步骤 3 :

获取指定位置的对象

edit edit
通过get获取指定位置的对象,如果输入的下标越界,一样会报错
获取指定位置的对象
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); //获取指定位置的对象 System.out.println(heros.get(5)); //如果超出了范围,依然会报错 System.out.println(heros.get(6)); } }
步骤 4 :

获取对象所处的位置

edit edit
indexOf用于判断一个对象在ArrayList中所处的位置
contains一样,判断标准是对象是否相同,而非对象的name值是否相等
获取对象所处的位置
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); System.out.println(heros); System.out.println("specialHero所处的位置:"+heros.indexOf(specialHero)); System.out.println("新的英雄,但是名字是\"hero 1\"所处的位置:"+heros.indexOf(new Hero("hero 1"))); } }
remove用于把对象从ArrayList中删除
remove可以根据下标删除ArrayList的元素

heros.remove(2);

也可以根据对象删除

heros.remove(specialHero);
删除
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); System.out.println(heros); heros.remove(2); System.out.println("删除下标是2的对象"); System.out.println(heros); System.out.println("删除special hero"); heros.remove(specialHero); System.out.println(heros); } }
set用于替换指定位置的元素
替换
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); System.out.println(heros); System.out.println("把下标是5的元素,替换为\"hero 5\""); heros.set(5, new Hero("hero 5")); System.out.println(heros); } }
size 用于获取ArrayList的大小
获取大小
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); System.out.println(heros); System.out.println("获取ArrayList的大小:"); System.out.println(heros.size()); } }
toArray可以把一个ArrayList对象转换为数组。
需要注意的是,如果要转换为一个Hero数组,那么需要传递一个Hero数组类型的对象给toArray(),这样toArray方法才知道,你希望转换为哪种类型的数组,否则只能转换为Object数组
转换为数组
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } Hero specialHero = new Hero("special hero"); heros.add(specialHero); System.out.println(heros); Hero hs[] = (Hero[])heros.toArray(new Hero[]{}); System.out.println("数组:" +hs); } }
步骤 9 :

把另一个容器所有对象都加进来

edit edit
addAll 把另一个容器所有对象都加进来
把另一个容器所有对象都加进来
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } System.out.println("ArrayList heros:\t" + heros); //把另一个容器里所有的元素,都加入到该容器里来 ArrayList anotherHeros = new ArrayList(); anotherHeros.add(new Hero("hero a")); anotherHeros.add(new Hero("hero b")); anotherHeros.add(new Hero("hero c")); System.out.println("anotherHeros heros:\t" + anotherHeros); heros.addAll(anotherHeros); System.out.println("把另一个ArrayList的元素都加入到当前ArrayList:"); System.out.println("ArrayList heros:\t" + heros); } }
clear 清空一个ArrayList
清空
package collection; import java.util.ArrayList; import charactor.Hero; public class TestCollection { public static void main(String[] args) { ArrayList heros = new ArrayList(); // 初始化5个对象 for (int i = 0; i < 5; i++) { heros.add(new Hero("hero " + i)); } System.out.println("ArrayList heros:\t" + heros); System.out.println("使用clear清空"); heros.clear(); System.out.println("ArrayList heros:\t" + heros); } }
步骤 11 :

练习-判断是否相同

练习难度 edit edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
如果就是要判断集合里是否存在一个 name等于 "hero 1"的对象,应该怎么做?
练习-判断是否相同
步骤 12 :

答案-判断是否相同

edit edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
步骤 13 :

练习-MyStringBuffer

练习难度 edit edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
做一个一样的MyStringBuffer练习,但是不使用字符数组,而是使用ArrayList来实现
步骤 14 :

答案-MyStringBuffer

edit edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
查看本答案会花费4个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 中级总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活


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


提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 中级-集合框架-常用方法 的提问

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

上传截图