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. 看看大神 Paul Graham 对如何学习编程的回答

    前言 我翻阅自己之前写的博客文章,发现在 2015 年我刚开始学习编程的时候,翻译了一段 Paul Graham 关于"How can I learn to program?"的回 ...

  2. select自定义下拉三角符号,css样式小细节

    本来没有写文章的习惯,但是闲下来了,整理资料,发现还挺纠结,对前端来说.所以整理下,希望对看到的人有所帮助,毕竟我不是前端开发. 起因,是前端告诉我select 框的三角箭头不能自定义.但是第二次的时 ...

  3. Altium Designer设计PCB--如何设置铺铜与导线或过孔的间距

    笑话: 到银行汇款,车临时停路边上. 为了怕交警罚就把朋友留下看车,跟他说有查车的过来了告诉我一声. 进去几分钟果然有交警来了. 那个朋友风风火火地闯进银行大声吼道:“大哥,警察来了,快走啊!” 偌大 ...

  4. 十代雅阁广东车友群,雅阁广州车友群,深圳雅阁车友群,雅阁微信群、雅阁车友群、十代雅阁交流微信QQ群

    最近一直在关注第十代雅阁,不论是普通汽油版本还是油电混动版本都很不错,在网上看到很多评测文章和视频 后续都会整理发布到微信群中. 由于论坛发帖,博客发文都不是很方便,为了及时沟通,先创建了微信群,方便 ...

  5. React躬行记(8)——样式

    由于React推崇组件模式,因此会要求HTML.CSS和JavaScript混合在一起,虽然这与过去的关注点分离正好相反,但是更有利于组件之间的隔离.React已将HTML用JSX封装,而对CSS只进 ...

  6. dockerfile 制作镜像

    # Set the base image to UbuntuFROM ubuntu # File Author chenghanMAINTAINER chenghan ################ ...

  7. Java的Hook线程及捕获线程执行异常

    import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.f ...

  8. nuxt项目打包上线,以及nuxt项目基础代码分享

    nuxt的项目部署到线上环境,有多种方法,这里分享我使用的方法,一步步照着配置,就可以配置成功~ (1)项目先执行npm run build 打包好   (2)服务器安装node 和pm2依赖 服务器 ...

  9. python函数知识一 函数初始、定义与调用、返回值、参数和函数的好处+菜中菜

    第四章 函数 1.函数初识: def :关键字 -- 定义 函数名:和变量的定义方式一样 (): 用于参数传递,: 形参:函数的定义中()内的是形参 实参:调用的()内是实参 传参:调用时将实参传递给 ...

  10. 【Gym - 100923A】Por Costel and Azerah(思维水题)

    Por Costel and Azerah Descriptions 给你n个数 问你,有多少个子序列 的和是偶数 Example Input 233 10 124 2 Output 33 题目链接 ...