集合框架_对象数组、集合(Collection)、集合(List)总结

转自:http://blog.csdn.net/L1585931143/article/details/53749787

  1. 1:对象数组(掌握)  
  2.     (1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。  
  3.     (2)案例:  
  4.         用数组存储5个学生对象,并遍历数组。  
  5.   
  6. 2:集合(Collection)(掌握)  
  7.     (1)集合的由来?  
  8.         我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组  
  9.         而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。  
  10.     (2)集合和数组的区别?  
  11.         A:长度区别  
  12.             数组固定  
  13.             集合可变  
  14.         B:内容区别  
  15.             数组可以是基本类型,也可以是引用类型  
  16.             集合只能是引用类型  
  17.         C:元素内容  
  18.             数组只能存储同一种类型  
  19.             集合可以存储不同类型(其实集合一般存储的也是同一种类型)  
  20.     (3)集合的继承体系结构?  
  21.         由于需求不同,Java就提供了不同的集合类。这多个集合类的数据结构不同,但是它们都是要提供存储和遍历功能的,  
  22.         我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图。  
  23.           
  24.         Collection  
  25.             |--List  
  26.                 |--ArrayList  
  27.                 |--Vector  
  28.                 |--LinkedList  
  29.             |--Set  
  30.                 |--HashSet  
  31.                 |--TreeSet  
  32.     (4)Collection的功能概述  
  33.         A:添加功能  
  34.             boolean add(Object object):添加一个元素。   
  35.             boolean addAll(Collection c):添加一个集合的元素。   
  36.         B:删除功能  
  37.             vouid clear():移除所有元素。   
  38.              boolean remove(Object o):移除一个元素。   
  39.               boolean removeAll(Collection c):移除一个集合的元素。(是一个还是所有)   
  40.         C:判断功能  
  41.             boolean contains(Object o):判断集合中是否包含指定的元素。   
  42.             boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。(是一个还是所有)   
  43.             boolean isEmpty():判断集合是否为空。   
  44.         D:获取功能  
  45.             Iterator<E> iterator():(重点)     
  46.         E:长度功能  
  47.             int size():元素的个数。   
  48.             面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?   
  49.                     没有,有,没有       
  50.         F:交集(了解)  
  51.             boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回boolean又是什么意思呢?   
  52.         G:把集合转数组(了解)  
  53.             Object[] toArray():   
  54.     (5)Collection集合的遍历  
  55.         A:把集合转数组(了解)  
  56.         B:迭代器(集合专用方式)  
  57.     (6)迭代器  
  58.         A:是集合的获取元素的方式。  
  59.         B:是依赖于集合而存在的。  
  60.         C:迭代器的原理和源码。  
  61.             a:为什么定义为了一个接口而不是实现类?  
  62.             b:看了看迭代器的内部类实现。  
  63.     (7)Collection集合的案例(遍历方式 迭代器)  
  64.         集合的操作步骤:  
  65.             A:创建集合对象  
  66.             B:创建元素对象  
  67.             C:把元素添加到集合  
  68.             D:遍历集合  
  69.       
  70.         A:存储字符串并遍历  
  71.             import java.util.Collection;  
  72.             import java.util.ArrayList;  
  73.             import java.util.Iterator;  
  74.               
  75.             public class CollectionDemo {  
  76.                 public static void main(String[] args) {  
  77.                     //创建集合对象  
  78.                     Collection c = new ArrayList();  
  79.                       
  80.                     //创建并添加元素  
  81.                     c.add("hello");  
  82.                     c.add("world");  
  83.                     c.add("java");  
  84.                       
  85.                     //遍历集合  
  86.                     Iterator it = c.iterator();  
  87.                     while(it.hasNext()) {  
  88.                         String s =(String) it.next();  
  89.                         System.out.println(s);  
  90.                     }  
  91.                 }  
  92.             }  
  93.           
  94.         B:存储自定义对象并遍历  
  95.             public class Student {  
  96.                 private String name;  
  97.                 private int age;  
  98.                   
  99.                 public Student(){}  
  100.                   
  101.                 public Student(String name,int age) {  
  102.                     this.name = name;  
  103.                     this.age = age;  
  104.                 }  
  105.                   
  106.                 //getXxx()/setXxx()  
  107.             }  
  108.               
  109.             import java.util.Collection;  
  110.             import java.util.ArrayList;  
  111.             import java.util.Iterator;  
  112.               
  113.             public class StudentDemo {  
  114.                 public static void main(String[] args) {  
  115.                     //创建集合对象  
  116.                     Collection c = new ArrayList();  
  117.                       
  118.                     //创建学生对象  
  119.                     Student s1 = new Student("林青霞",27);  
  120.                     Student s2 = new Student("风清扬",30);  
  121.                     Student s3 = new Student("刘意",30);  
  122.                     Student s4 = new Student("武鑫",25);  
  123.                     Student s5 = new Student("刘晓曲",16);  
  124.                       
  125.                     //添加元素  
  126.                     c.add(s1);  
  127.                     c.add(s2);  
  128.                     c.add(s3);  
  129.                     c.add(s4);  
  130.                     c.add(s5);  
  131.                       
  132.                     //遍历集合  
  133.                     Iterator it = c.iterator();  
  134.                     while(it.hasNext()) {  
  135.                         Student s = (Student)it.next();  
  136.                         System.out.println(s.getName()+"---"+s.getAge());  
  137.                     }  
  138.                 }  
  139.             }  
  140.   
  141. 3:集合(List)(掌握)  
  142.     (1)List是Collection的子接口  
  143.         特点:有序(存储顺序和取出顺序一致),可重复。  
  144.     (2)List的特有功能:  
  145.         A:添加功能  
  146.             void add(int index,Object object):在指定位置添加元素。   
  147.         B:删除功能  
  148.             Object remove(int index):根据索引删除元素,返回被删除的元素。  
  149.         C:获取功能  
  150.             Object get(int index):获取指定位置的元素。   
  151.         D:迭代器功能  
  152.             ListIterator listIterator():List集合特有的迭代器。  
  153.         E:修改功能  
  154.             Object set(int index,Object obje):根据索引修改元素,返回被修改的元素。   
  155.     (3)List集合的特有遍历功能  
  156.         A:由size()和get()结合。  
  157.         B:代码演示  
  158.                     //创建集合对象  
  159.                     List list = new ArrayList();  
  160.                       
  161.                     //创建并添加元素  
  162.                     list.add("hello");  
  163.                     list.add("world");  
  164.                     list.add("java");  
  165.                       
  166.                     //遍历集合  
  167.                     Iterator it = list.iterator();  
  168.                     while(it.hasNext()) {  
  169.                         String s =(String) it.next();  
  170.                         System.out.println(s);  
  171.                     }  
  172.                     System.out.println("----------");  
  173.                       
  174.                     for(int x=0; x<list.size(); x++) {  
  175.                         String s =(String) list.get(x);  
  176.                         System.out.println(s);  
  177.                     }  
  178.     (4)列表迭代器的特有功能;(了解)  
  179.         可以逆向遍历,但是要先正向遍历,所以无意义,基本不使用。  
  180.     (5)并发修改异常  
  181.         A:出现的现象  
  182.             迭代器遍历集合,集合修改集合元素  
  183.         B:原因  
  184.             迭代器是依赖于集合的,而集合的改变迭代器并不知道。  
  185.         C:解决方案  
  186.             a:迭代器遍历,迭代器修改(ListIterator)  
  187.                 元素添加在刚才迭代的位置  
  188.             b:集合遍历,集合修改(size()和get())  
  189.                 元素添加在集合的末尾  
  190.     (6)常见数据结构  
  191.         A:栈 先进后出  
  192.         B:队列 先进先出  
  193.         C:数组 查询快,增删慢  
  194.         D:链表 查询慢,增删快  
  195.     (7)List的子类特点(面试题)  
  196.         ArrayList  
  197.             底层数据结构是数组,查询快,增删慢。  
  198.             线程不安全,效率高。  
  199.         Vector  
  200.             底层数据结构是数组,查询快,增删慢。  
  201.             线程安全,效率低。  
  202.         LinkedList  
  203.             底层数据结构是链表,查询慢,增删快。  
  204.             线程不安全,效率高。  
  205.               
  206.         到底使用谁呢?看需求?  
  207.         分析:  
  208.             要安全吗?  
  209.                 要:Vector(即使要,也不使用这个,后面再说)  
  210.                 不要:ArrayList或者LinkedList  
  211.                     查询多;ArrayList  
  212.                     增删多:LinkedList  
  213.                       
  214.         什么都不知道,就用ArrayList。  
  215.     (8)List集合的案例(遍历方式 迭代器和普通for)  
  216.         A:存储字符串并遍历  
  217.         B:存储自定义对象并遍历  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值