java集合及遍历器的初步认识
Collection概念:
Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。
注释:JDK 不提供此接口的任何直接 实现:它提供更具体的子接口,更具体的实现类
Collection基本功能:
添加功能:
boolean add(Object e)
删除功能:
void clear() :删除集合中所有元素(暴力删除)
boolean remove(Object o):删除集合中的指定元素
判断功能:
boolean contains(Object o):集合中是否包含指定的元素
获取功能:
int size() :获取集合中的元素数
举例:
* @author 田伟**/
public class CollectDome {
public static void main(String[] args) {Collection c=new ArrayList();//接口不能实例化//System.out.println(c);空的数组//添加功能c.add("hello");c.add("world");c.add("java");System.out.println(c);//删除功能//c.clear();//System.out.println(c);System.out.println(c.remove("java"));System.out.println(c);//集合中是否包含对应元素System.out.println(c.contains("hello"));System.out.println(c.contains("java"));//获取集合长度System.out.println(c.size());//判断集合是否为空System.out.println(c.isEmpty());
}
}
Colleciton的集合的高级功能:
boolean addAll(Collection c) :添加一个集合中的所有元素
boolean removeAll(Collection c):删除的高级功能(思考:删除一个算是删除还是删除所有算是删除?)
boolean containsAll(Collection c):包含所有元素算是包含,还是包含一个算是包含
交集功能:
boolean retainAll(Collection c):A集合对B集合取交集,交集的元素到底是去A集合还是去B集合中,返回值boolean
举例:
* @author 田伟**/
public class CollectionDemo2 {
public static void main(String[] args) {//创建集合Collection c=new ArrayList();c.add("asd1");c.add("asd2");c.add("asd3");c.add("asd4");
// c.add("asd8");//创建集合2Collection c2=new ArrayList();c2.add("asd1");c2.add("asd2");c2.add("asd3");c2.add("asd4");c2.add("asd5");c2.add("asd6");c2.add("asd7");System.out.println(c);System.out.println(c2);System.out.println("-------------");//将c2中的元素,添加到c中/*System.out.println(c.addAll(c2));System.out.println(c);System.out.println(c2);*///删除一个算删除/*System.out.println(c.removeAll(c2));System.out.println(c);System.out.println(c2);*///包含所有元素算包含/*System.out.println(c.containsAll(c2));System.out.println(c);System.out.println(c2);*/System.out.println(c.retainAll(c2));System.out.println(c);System.out.println(c2);//交集的部分会显示出来,在c1中,没有的就不会显示,看a是否发生变化,若有则true,否则则flase.
}
}
转换功能:Object[] toArray() :将集合转换成数组
需求:要给集合中存储字符串类型的数据,并遍历
举例:
* @author 田伟**/
public class CollectionDemo3 {
public static void main(String[] args) {Collection c=new ArrayList();c.add("retain");c.add("hello");c.add("world");System.out.println(c);//需要去转换;Object[] arr=c.toArray();for(int i=0;i<arr.length;i++) {System.out.println(arr[i]);String s=(String)arr[i];System.out.println(s+"----"+s.length());}
}
需求:存储自定义对象并遍历
有5个学生,学生有姓名,年龄,遍历5个学生,输出5个学生对应的信息(集合改进)
1)创建一个学生类
2)在测试类中,创建集合对象
3)创建5个具体学生对象,并且添加集合中
4)将集合转换数组
5)遍历
6)输出
举例:
* @author 田伟**/
public class CollectionDemo4 {public static void main(String[] args) {Collection c=new ArrayList();Student s1=new Student("胡歌",27);Student s2=new Student("靳东",18);Student s3=new Student("黄晓明",28);Student s4=new Student("科比",33);Student s5=new Student("詹姆斯",30);c.add(s1);c.add(s2);c.add(s3);c.add(s4);c.add(s5);Object[] arr=c.toArray();for(int i=0;i<arr.length;i++) {
// System.out.println(arr[i]);Student s=(Student)arr[i];System.out.println(s.getName()+"----"+s.getAge()); }}
}
Iterator
iterator() :集合的迭代器方法(获取集合的迭代器)
集合的专有遍历方式:迭代器遍历
Iterator :接口中有以下的方法:
boolean hasNext() :如果有元素可以迭代,那么返回true,否则返回false
Object next()返回迭代的下一个元素。
存储 String类型的元素
* @author 田伟**/
public class IteratorDemo1 {
public static void main(String[] args) {Collection c=new ArrayList();c.add("hello");c.add("retain");c.add("iterator");Iterator it=c.iterator();/*System.out.println(it.hasNext());System.err.println(it.next());System.out.println(it.hasNext());System.out.println(it.next());*/while(it.hasNext()) {String s=(String)it.next();System.out.println(s+"----"+s.length());}}
}
存储自定义对象并遍历(使用专有遍历方式)
举例:
* @author 田伟**/
public class IteratorDemo2 {
public static void main(String[] args) {Collection c=new ArrayList();Student s1=new Student ("靳东",28);Student s2=new Student ("胡歌",18);Student s3=new Student ("黄晓明",30);c.add(s1);c.add(s2);c.add(s3);Iterator it =c.iterator();while(it.hasNext()) {Student s=(Student)it.next();System.out.println(s.getName()+"---------"+s.getAge());}
}
}
注释:1)it.next(),只使用一次即可,使用多次,会出现问题(it.next(),每次使用的时候都是返回一个对象)
2)遍历的时候使用的while循环,可不可以使用for循环呢?
举例:
/*** @author 田伟**/
public class IteratorDemo3 {
public static void main(String[] args) {Collection c=new ArrayList();Student s1=new Student ("靳东",28);Student s2=new Student ("胡歌",18);Student s3=new Student ("黄晓明",30);c.add(s1);c.add(s2);c.add(s3);for(Iterator it=c.iterator();it.hasNext();) {Student s=(Student)it.next();System.out.println(s);}
}
}
java集合及遍历器的初步认识相关推荐
- java集合的遍历删除
java集合的遍历删除. 案例 使用普通for循环遍历集合 //以下代码不会有任何问题List<Integer> list = new ArrayList();list.add(1);li ...
- JAVA集合迭代遍历和特性介绍
数组.集合:都是一种容器,用一个对象管理多个对象:数组不能自动增长:只能存放同类型的元素 集合能自动扩容:部分集合允许存放不同类型的元素: 1.List: 有顺序的,允许存放重复的元素: 遍历:for ...
- java集合的遍历_Java集合之遍历
在Java开发中,集合,可以说使我们必然要使用到的一个框架.对集合的遍历也是我么经常要进行的操作,而遍历操作又有多种,下面就对集合遍历进行以下总结. 一.List.Set的遍历 List与Set都继承 ...
- java集合的遍历_java集合遍历方法总结
java集合遍历方法总结 一.for循环遍历集合 使用条件: ①能否确定集合中的元素个数 ②集合是否可以通过整数索引值来精确位置 public static void forTraversal(){ ...
- Java集合如何遍历删除指定元素
目录 1.删除List 2.删除Set 3.删除Map 注意事项: 1.删除List public class ListDemo {public static void main(String[] a ...
- Java——集合的遍历之迭代遍历
这些是下面的代码中所涉及到的所有方法:* 迭代概述:* 集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历)* 也就是说,迭代就是遍历* * public interface Iterato ...
- Java 集合中遍历删除元素抛异常的原因,从ArrayList说起
文章目录 使用for删除遗漏元素的原因: 使用foreach删除报错的原因: 其它集合的删除方法 删除集合元素的工具类 ArrayList删除元素的方式. 使用for循环删除.会遗漏删除的元素 使用f ...
- java集合set遍历方法
对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = s ...
- Java 集合List遍历删除
循环遍历需要从最后索引开始!!! public static void main(String[] args) {List<Integer> list = new ArrayList< ...
最新文章
- 魅族的android m l,Android M 外部存储剖析
- python解释器是什么-python解释器都有什么
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
- 发送WM_COPYDATA消息实现进程间的通信
- HTC G7 金卡 制作
- ajax的学多久,ajax第二天学习
- 写在 2019 年后的蚂蚁、头条、拼多多的面试总结
- Flutter AnimatedSwitcher 动画切换组件的基本使用
- NUC1196 Sum【水题+数学题】
- VUE router-view 页面布局 (嵌套路由+命名视图)
- CurrentUser获取不到当前登录用户name
- layui开发使用文档(镜像网址)
- PHP生成条形码 之一 条形码介绍
- rpc error: code = Unimplemented desc =
- 思迅商云8版的最后一个版本_泪目!科比成为2K21第3位封面球星,将推出曼巴永恒版...
- wps2016向程序发送命令_解决excel弹出“向程序发送命令时出现问题”的方法
- 通过access口加vlan标签吗_[转载]vlan与trunk打标签过程
- yolo系列算法思想流程简单讲解概述————(究极简单的讲述和理解)
- 第二周:java异常和常用类 容器
- OCR最佳实践项目汇总