1.学习集合的原因?

A.数组是面向过程的,集合是面向对象的。

B。集合是类,具备类的封装,继承,多态。。。超强功能。

C。数组是固定长度,集合是可变长度

D。数组没办法获得真实的元素个数;集合可以。

E。数组只有一种固定的存值方法(顺序结构存值);集合具有多种方式,适合于多种场合。

2.集合的家庭成员:

(第一块:)
               Collection  【无序,不唯一】      Map【key  , value】
          【无序,唯一】【无序,不唯一】

list 【有序,不唯一】                        set【无序,唯一】

ArrayList     LinkedList    Vector              HashSet     TreeSet  HashMap
   |     |         |           |     |
【顺序存储】 【链表存储】         【hash表】  【二叉树】      【哈希表+键值对】

3.介绍ArrayList:

存值方式: 顺序结构存储。

使用场合: 遍历和随机访问。

常用方法:

增加:add();addAll(Collection);
    
      删除:remove(Object或者下标);removeAll(Collection);

查找:contains(Object);containsAll(Collection);size();get(下标);

迭代:Iterater:

使用:
  Iterator iter =list.iterator();
  while(iter.hasNext()){
   System.out.println(iter.next());
  }

4.介绍Vector 和 ArrayList的区别:(了解)

1.相同点:原理相同,底层代码相同,方法相同

2.不同:Vector  线程安全的;每次增长1倍;老版本jdk提供操作集合的接口

ArrayList 效率高,线程不安全;每次增长0.5倍;ArrayList是新版本提供集合的接口。

5.介绍LinkedList:

存值方式:链表结构

使用场合:删除和修改

方法:

增加:add();addAll();addFirst();addLast();
    
      删除:remove();clear();removeAll();
            removeFirst();removeLast()

查找:contains("北京");containsAll(list1);size();get();
            getFirst();getLast();

迭代:Iterater:   
        
  对比LinkedList 和ArrayList的区别:

1.存值方式不一样:顺序结构,链表结构

2.使用场合不一样:遍历和随机访问;删除和修改

6. 介绍泛型:

学习泛型的原因?
    
       保证集合在【编译期】存值时没问题;那么运行期取值也没问题。

作用: 在【编译期】,控制接收元素的类型。
      
    泛型用在集合:

LinkedList<Integer> link = new LinkedList<Integer>();

link.addFirst(567);
          link.add(12);
          link.add(111);
   System.out.println(link);
   
 Iterator<Integer> list=link.iterator();
 while(list.hasNext()){
  Integer i=list.next();
  System.out.println(i+1);
 }

7.集合的第二块:

Map  (键 值对,key无序唯一;value 无序 不唯一)

HashMap      TreeMAP       HashTAble

(7.1)介绍:HashMap

存值方式: hash表存储键值对。

HashMap  vs  Hashtable (了解)

1. Hashtable 老jdk版本;HashMap  新版本

2. Hashtable 线程安全; HashMap  效率高,线程不安全。

3. HashMap  实现Map接口 ;Hashtable 继承 Dictionary。
       
 4.hashMap允许空值,hashtable不允许空值

相同:原理,算法,存值方式相同。

方法:

增加: put(011, "北京");putAll(map1);

删除:remove(key); ---根据key ,去删除 value

查询:get(key)--根据key ,去删除 value。
      keySet()---返回键的集合
      values()---返回值的集合
      containsKey(key)---如果存在由指定的键映射的“键-值对”,返回true

java面向对象中的集合的更多相关文章

  1. 第35节:Java面向对象中的多线程

    Java面向对象中的多线程 多线程 在Java面向对象中的多线程中,要理解多线程的知识点,首先要掌握什么是进程,什么是线程?为什么有多线程呢?多线程存在的意义有什么什么呢?线程的创建方式又有哪些?以及 ...

  2. java多线程中并发集合和同步集合有哪些?区别是什么?

    java多线程中并发集合和同步集合有哪些? hashmap 是非同步的,故在多线程中是线程不安全的,不过也可以使用 同步类来进行包装: 包装类Collections.synchronizedMap() ...

  3. Java 8中处理集合的优雅姿势——Stream

    在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增.删.改.查.聚合.统计.过滤等操作.相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便 ...

  4. java面向对象中四种权限(private,protected,public,友好型)详解

    转自http://blog.csdn.net/a1237871112/article/details/50926975 及http://blog.csdn.net/blackmanren/articl ...

  5. JAVA 面向对象中的多态

    多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个 ...

  6. java方法中Collection集合的基本使用与方法

    集合类的由来,对象用于封闭特有数据,对象多了需要存储,如果对象的个数不确定就使用集合容器进行存储. 集合特点:1.用于存储对象的容器.2.集合的长度是可变的.3.集合中不可以存储基本数据类型值. 集合 ...

  7. 第33节:Java面向对象中的异常

    Java中的异常和错误 Java中的异常机制,更好地提升程序的健壮性 throwable为顶级,Error和Exception Error:虚拟机错误,内存溢出,线程死锁 Exception:Runt ...

  8. Java开发中各种集合框架简介

    在大数据MapReduce作业开发中,我们经常会遇到一些大小表的join,这是如果这个小表足够“小”的话,我们可以使用进行“map-join-side”,这要就可以有效的降低reduce端的压力,但是 ...

  9. Java面向对象中this关键字详解 意义+实例讲解【hot】

    this关键字 >>>便于理解简单的定义 this关键字可以简单的理解为,谁调用this所在的方法,this就是谁. 类的构造函数与getter.setter方法常用到this关键字 ...

随机推荐

  1. easyui close的最大化的dialog 切换 tab 再次出现

    今天发现一个神奇的bug,easyui中的dialog在经历了d.panel('close');之后,当前的tab仍然未关闭,切换了另一tab,然后回去刚才的tab,发现已经close的dialog又 ...

  2. docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)

    本篇基于centos7服务器进行部署开发 一.拉取redis镜像,使用如下命令 docker pull redis 1.查看镜像是否拉取成功,使用如下命令 docker images 显示如下则证明拉 ...

  3. Bean property 'transactionManagerBeanName' is not writable or has an invalid set

    [2017-02-07 11:38:48,458]-[localhost-startStop-1]-[org.springframework.beans.factory.support.Default ...

  4. Vue快速学习_第三节

    过滤器 局部过滤器(组件内部使用的过滤器,跟django的很像, filters: {过滤器的名字: {function(val, a,b){}}} 全局过滤器(全局过滤器,只要过滤器一创建,在任何组 ...

  5. springcloud-路由Zull

    1. 场景描述 今天接着介绍springcloud,今天介绍下springcloud的路由网关-Zull,外围系统或者用户通过网关访问服务,网关通过注册中心找到对应提供服务的客户端,网关也需要到注册中 ...

  6. 版本管理--svn解决代码冲突

    高级的svn解决冲突的方法: 选择正在冲突的文件,右键,选择Edit confilicts,这时候出现一个弹框, 看你实际的需要用自己的代码,还是用同事的代码,或者合并起来.最后点击Mark as r ...

  7. python 之 并发编程(守护进程、互斥锁、IPC通信机制)

    9.5 守护进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就立即终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic process ...

  8. kali linux 常用文件与指令路径

    重启网络 : /etc/init.d/networking restart 语言设置文件 : /etc/default/locale apt 安装deb保存目录 : /var/cache/apt/ar ...

  9. BAT的人都是怎么学习的

    不知道你发现没,在技术领域走在前列的人,基本都符合一个条件:保持对新技术的敏感度,还能定期更新自己的技能储备. 要做到这一点,最高效的办法就是直接跟 BAT 等一线大厂取经.说白了,平台足够大,就有更 ...

  10. mui.storage 将数据持久化到本地

    在一个用mui做得app中,要求把历史记录放在本地(感觉...无法言喻的sd),但最终还是做了,以下来记录本次的学习到的内容 mui.plusReady(function() { //这里是一开始定义 ...