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集合及遍历器的初步认识相关推荐

  1. java集合的遍历删除

    java集合的遍历删除. 案例 使用普通for循环遍历集合 //以下代码不会有任何问题List<Integer> list = new ArrayList();list.add(1);li ...

  2. JAVA集合迭代遍历和特性介绍

    数组.集合:都是一种容器,用一个对象管理多个对象:数组不能自动增长:只能存放同类型的元素 集合能自动扩容:部分集合允许存放不同类型的元素: 1.List: 有顺序的,允许存放重复的元素: 遍历:for ...

  3. java集合的遍历_Java集合之遍历

    在Java开发中,集合,可以说使我们必然要使用到的一个框架.对集合的遍历也是我么经常要进行的操作,而遍历操作又有多种,下面就对集合遍历进行以下总结. 一.List.Set的遍历 List与Set都继承 ...

  4. java集合的遍历_java集合遍历方法总结

    java集合遍历方法总结 一.for循环遍历集合 使用条件: ①能否确定集合中的元素个数 ②集合是否可以通过整数索引值来精确位置 public static void forTraversal(){ ...

  5. Java集合如何遍历删除指定元素

    目录 1.删除List 2.删除Set 3.删除Map 注意事项: 1.删除List public class ListDemo {public static void main(String[] a ...

  6. Java——集合的遍历之迭代遍历

    这些是下面的代码中所涉及到的所有方法:* 迭代概述:* 集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历)* 也就是说,迭代就是遍历* * public interface Iterato ...

  7. Java 集合中遍历删除元素抛异常的原因,从ArrayList说起

    文章目录 使用for删除遗漏元素的原因: 使用foreach删除报错的原因: 其它集合的删除方法 删除集合元素的工具类 ArrayList删除元素的方式. 使用for循环删除.会遗漏删除的元素 使用f ...

  8. java集合set遍历方法

    对 set 的遍历 1.迭代遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = s ...

  9. Java 集合List遍历删除

    循环遍历需要从最后索引开始!!! public static void main(String[] args) {List<Integer> list = new ArrayList< ...

最新文章

  1. 魅族的android m l,Android M 外部存储剖析
  2. python解释器是什么-python解释器都有什么
  3. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
  4. 发送WM_COPYDATA消息实现进程间的通信
  5. HTC G7 金卡 制作
  6. ajax的学多久,ajax第二天学习
  7. 写在 2019 年后的蚂蚁、头条、拼多多的面试总结
  8. Flutter AnimatedSwitcher 动画切换组件的基本使用
  9. NUC1196 Sum【水题+数学题】
  10. VUE router-view 页面布局 (嵌套路由+命名视图)
  11. CurrentUser获取不到当前登录用户name
  12. layui开发使用文档(镜像网址)
  13. PHP生成条形码 之一 条形码介绍
  14. rpc error: code = Unimplemented desc =
  15. 思迅商云8版的最后一个版本_泪目!科比成为2K21第3位封面球星,将推出曼巴永恒版...
  16. wps2016向程序发送命令_解决excel弹出“向程序发送命令时出现问题”的方法
  17. 通过access口加vlan标签吗_[转载]vlan与trunk打标签过程
  18. yolo系列算法思想流程简单讲解概述————(究极简单的讲述和理解)
  19. 第二周:java异常和常用类 容器
  20. OCR最佳实践项目汇总

热门文章

  1. 微信公众号拉取扫码功能
  2. 猴子分桃问题(JAVA实现)
  3. 关于NFT房地产:2022年你所需要知道的一切
  4. MT6765 PCB设计资料,MT6765芯片参考资料
  5. SpringBoot——什么是SpringBoot、SpringBoot入门、创建SpringBoot
  6. 当网站不允许上传ASP,CGI,CER,CDX,HTR等类型的文件时
  7. 学生成绩管理系统软件质量测试,教学质量监测
  8. 考试/答题系统的设计思路
  9. 解决idea 打开Java项目文件黄色圈问题
  10. OSM数据如何下载使用(地图数据篇.11)