黑马程序员——java集合框架之List,Set

集合框架
  1.数组与集合的不同
    数组长度是固定的,集合长度是可变的
    数组中可以存储基本数据类型,集合只存储对象
    集合可以存储不同类型的对象
      
  2.java集合类中有两个顶层接口Collection和Map,下面是对Collection的一些总结:

集合中常用方法:
     add方法的参数类型为Object,以便于接受任意类型的对象
     集合中存储的都是对象的引用(或者说地址)

迭代器是集合取出元素的方式,此方法是定义在集合的内部,这样取出方式就可以直接访问集合内部的元素
     而每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都有共性内容:判断和取出
     那么可以将共性抽取

这些内部类都符合一个规则,该规则是Iterator.
     通过一个对对外提供的方法iterator()来获取集合的取出对象      
     
     方法:add(Object obj)  添加元素
           remove(Object obj)删除元素
           contains(Object obj)判断元素是否存在
           isEmpty()判断集合是否为空 
           size()获取集合长度
           retainAll()取交集,只保留于指定集合中元素相同的元素
           iterator()  获取迭代器,用于取出集合中的元素

3. Collection下面的子接口:(List和Set)

  • List:元素师有序的,元素可以重复,因为该集合体系有索引

LinkedList   链表数据结构
       HashSet   底层数据结构是哈希表

HashSet是如何保证元素唯一性的呢?
     是通过元素的两个方法hashCode 和equals来完成
     如果元素的HashCode 值相同,才会判断equals是否为true 
     如果HashCode值不相同,才会进行equals
    hashCode()和equals()是集合内部顶层自己调用的
    判断元素是否存在,以及删除操,以来的方法是元素的hashCode和equals()方法。
    一般开发用到HashSet时,一般都会复写hashCode()和equals()方法
   
   (2)---TreeSet  底层数据结构是二叉树
               保证元素唯一性的依据:compareTo()方法的返回值是否为0
     
      TreeSet排顺序的第一种方式:让元素自身具备比较性,元素要实现Comparator接口,覆盖compareTo()方法
      这种方式也成为元素的自然顺序,或者叫做默认顺序
     
      TeeeSet的第二种排序方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的
      这时就需要让集合自身具备比较性
      自己和初始化时,就赋予比较方式。
        即定义一个比较器,将比较器对象作为参数传递给TreeSet集合的构造函数

当两种排序方式都存在时,以比较器为主,定义一个类实现Comparator接口,覆盖compare()方法

时间: 2024-11-19 04:26:46

黑马程序员——java集合框架之List,Set的相关文章

黑马程序员---Java集合框架

---------------------- Android开发.java培训.期待与您交流! ---------------------- Java集合框架 集合我们都知道是用来储存对象的容器,那之前的数组不也可以储存对象么,为什么要出现集合呢? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,然而集合类中提供很多方便操作对象存储的方法,要比数组更容易操作对象,而且集合的长度是可变的,然而数组长度确实固定不变的,这样不利于对对象的间隔储存.  数组和集

黑马程序员——JAVA集合框架学习总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- www.itheima.com 要学好java的集合框架,必须掌握此图: Java集合框架很全面,从大的来说.它包括两种类型: 1.一种是以collection为根接口的集合. 2.另一种是由map为根接口的<key,value>的“图”. 而collection之下的set接口和list接口又有不同: 1.Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制.

黑马程序员------Java集合框架学习总结

Java培训.Android培训.iOS培训..Net培训.期待您的交流 一.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类. 二.Collection接口 Collction: List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引.

黑马程序员——java集合框架(Map和工具类)

1.Map体系下有三个子类: HashMap    底层是哈希表数据结构,可以存入null键和null值,不同步---TreeMap    底层是二叉树数据结构,线程同步,可以用于给map集合中的键进行排序 和Set很像,Set底层是Map  添加元素时,如果出现相同键,那么厚添加的值会覆盖原有键对应的值,并且put方法会返回被覆盖的值 2.map集合的两种取出方式:  (1) keySet():将map中所有的键存入到Set集合,因为set具备迭代器                 可以以迭代

黑马程序员_Java集合框架

- - - - - android培训.java培训.期待与您交流! - - - - - - 集合框架:用于存储数据的容器. 特点: 对象封装数据,对象多了也需要存储.集合用于存储对象. 对象的个数确定可以使用数组.如果不确定可以用集合.因为集合是可变长度的. 集合和数组的区别: 数组是固定长度的:集合可变长度的. 数组可以存储基本数据类型,也可以存储引用数据类型:集合只能存储引用数据类型. 数组存储的元素必须是同一个数据类型:集合存储的对象可以是不同数据类型. 数据结构:就是容器中存储数据的方

黑马程序员——Java集合基础知识之Collection

集合基础知识--Collection Java中集合框架由常用的Collection接口和Map接口组成,而Collection接口又有两个子接口,是List接口和Set接口,常用的集合框架由这三个类组成. List接口的功能方法 List的使用最为简单,创建集合,通过add方法添加元素,get方法获取元素,通过迭代器获取元素.List接口存放的数据无序的,添加速度快,但是查询速度慢,因为查询的时候必须遍历,每次都重头开始,效率较低.常用实现类有ArrayList,LinkedList. Lis

黑马程序员——Java集合工具类和泛型

Collections工具类和泛型 Collections和Collection Collections和Collection是不同的,Collections是工具类,用来操作集合的,而Collection是集合接口.Collections中有一系列的静态方法用来操作集合,但是不能更改集合内容.比如不能set()不能remove()元素,可以替换全部元素或者添加同一个元素. static List<String> list =Arrays .asList("one Two three

黑马程序员——Java集合基础知识之Map

Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 当数据之间存在映射关系的时候,考虑使用Map集合. Map常用方法 如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值.put会返回来先添加的值,后添加的值会覆盖原有的值. Map tm =new TreeMap(); tm.put (key, value);//MAP没有add tm.remove (key) ;//去除一个key和对应的value,若不存在key返回nu

黑马程序员__集合框架总结

------Java培训期待与您交流! ------- 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档. 一.概述 数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法. 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口