黑马程序员---Java集合的使用
来源:互联网 发布:asp编程培训 编辑:程序博客网 时间:2024/05/29 00:31
——- android培训、java培训、期待与您交流! ———-
集合是我们写程序用到很频繁的Java api集合对象用于封装特有数据,对象多了需要存储;如果对象的个数不确定,就使用集合容器进行存储。
集合特点:1. 用于存储对象的容器。2. 集合的长度是可变的。3. 集合中不可以存储基本数据类型值。集合容器因为内部的数据结构不同,有多种具体容器。不断的向上抽取,就形成了集合框架。数组和集合类同是容器,有何不同:数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。集合框架的构成及分类:
Collection接口
框架的顶层Collection接口:Collection的常见方法:1、添加:boolean add(Object obj);boolean addAll(Collection coll);2、删除:boolean remove(Object obj);boolean removeAll(Collection coll);void clear();3、判断:boolean contains(Object obj);boolean containsAll(Collection coll);boolean isEmpty();判断集合中是否有元素。4、获取:int size();Iterator iterator();取出元素的方式:迭代器。该对象必须依赖于具体容器,因为每一个容器的数据结构都不同,所以该迭代器对象是在容器中进行内部实现的,也就是iterator方法在每个容器中的实现方式是不同的。对于使用容器者而言,具体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可,也就是iterator方法。Iterator接口就是对所有的Collection容器进行元素取出的公共接口。5、其他:boolean retainAll(Collection coll);取交集Object toArray();将集合转成数组
List、Set
Collection |--List:有序(存入和取出的顺序一致),元素都有索引(角标),允许重复元素。 |--Set:元素不能重复,无序。List
特有的常见方法。
有一个共性特点就是都可以操作角标。
1、添加
void add(index,element);
void addAll(index,collection);
2、删除 Object remove(index);3、修改 Object set(index,element);4、获取: Object get(index); int indexOf(object); int lastIndexOf(object); List subList(from,to);List集合可以完成对元素的增删改查。
Vector、ArrayList、LinkedList
List: |--Vector:内部是数组数据结构,是同步的。增删,查询都很慢。 |--ArrayList:内部是数组数据结构,是不同步的,替代了Vector。替代了Vector,查询的速度快。 |--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。LinkedList方法:addFirst();addLast();jdk1.6版本后新方法:offerFirst();与addFirst方法没有区别。offerLast();与addLast方法没有区别。---------------------------------------------------------getFirst();//获取但不移除,如果链表为空,抛出NoSuchElementException。getLast();jdk1.6版本后新方法:peekFirst();//获取但不移除,如果链表为空,返回null。peekLast();--------------------------------------------------------removeFirst();//获取并移除,如果链表为空,抛出NoSuchElementException。removeLast();jdk1.6版本后新方法:pollFirst();//获取并移除,如果链表为空,返回null;pollLast();
Set:元素不可以重复,是无序。
Set接口中的方法和Collection一致。
|–HashSet:内部数据结构是哈希表,是不同步的。
|–TreeSet:可以对Set集合中的元素进行排序,是不同步的。
哈希表确定元素是否相同
1. 判断的是两个元素的哈希值是否相同。
如果相同,再判断两个对象的内容是否相同。
2. 判断哈希值相同,其实判断的是对象的HashCode方法。判断内容相同,用的是equals方法。
如果哈希值不同,不需要判断equals。
TreeSet对元素进行排序的方式一: 让元素自身具备比较功能,元素就需要实现Comparable接口,覆盖compareTo方法。
如果不要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序。怎么办?可以使用TreeSet集合第二种排序方式:让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法。将该类对象作为参数传递给TreeSet集合的构造函数。
如果自定义类实现了Comparable接口,并且TreeSet的构造函数中也传入了比较器,那么将以比较器的比较规则为准。
TreeSet集合的底层是二叉树进行排序的。
Map
Map:一次添加一对元素,Collection一次添加一个元素。Map也称为双列集合,Collection集合称为单列集合。其实Map集合中存储的就是键值对。map集合中必须保证键的唯一性。常用方法:1、添加value put(key,value):返回前一个和key关联的值,如果没有返回null。2、删除void clear():清空map集合。value remove(Object key):根据指定的key删除这个键值对。3、判断boolean containsKey(key);boolean containsValue(value);boolean isEmpty();4、获取value get(key):通过键获取值,如果没有该键返回null。 当然可以通过返回null,来判断是否包含指定键。int size():获取键值对个数。
Map常用的子类:
|–Hashtable:内部结构是哈希表,是同步的。不允许null作为键,null作为值。
|–Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。
|–HashMap:内部结构式哈希表,不是同步的。允许null作为键,null作为值。
|–TreeMap:内部结构式二叉树,不是同步的。可以对Map结合中的键进行排序。
- 黑马程序员---Java集合的使用
- 黑马程序员---Java集合的使用
- 黑马程序员-JAVA.Collections-基本集合使用
- 黑马程序员 java 集合
- 黑马程序员---java集合
- 黑马程序员---集合【java】
- 黑马程序员-------Java集合
- 黑马程序员-java集合
- 黑马程序员--Java集合
- 黑马程序员----java集合
- 黑马程序员----JAVA集合
- 黑马程序员--Java集合
- 黑马程序员--java集合
- 黑马程序员--java集合
- 黑马程序员---java---集合
- 黑马程序员Java----集合
- 黑马程序员 JAVA集合
- 黑马程序员-Java集合
- 教程——Basys3开发板的MicroBlaze串口实验
- 让程序员跳槽的非钱原因
- Day14.成员函数和全局函数//链表货物类//友元函数//操作符重载相关
- java学习之旅41--面向对象_14_继承_super_构造器的调用_继承的内存分析(非常重要)
- 垃圾回收算法
- 黑马程序员---Java集合的使用
- JS页面截图技术
- 400+考研 北京航空航天大学7系机械工程及自动化学院971机械工程综合资料合辑
- oracle和sql server中回车符和换行符的sql代码
- NSNotificationCenter管理
- 第二章 Spring MVC入门 —— 跟开涛学SpringMVC
- 黑马程序员——java基础之String
- Tweenjs中的MotionGuidePlugin示例
- iOS面试题集锦