黑马程序员------集合

来源:互联网 发布:软件发票备注栏规定 编辑:程序博客网 时间:2024/06/05 14:44

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

1、集合概念

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作。

就对对象进行存储,集合就是存储对象。

集合Collection两大子类接口ListSet


2共性方法

创建Arraylist al=new Arraylist();

添加al.add();向集合添加元素。

获取al.size();获取集合元素的个数。

打印sapal);

删除al.remove();去除指定元素。

      al.clear();清除集合中的所用元素。

判断al.contains();判断是否包含指定元素。

      al.isEmpty();判断集合元素是否为空。

其他al.retainAll();取两集合的交集,如果没有交集,则返回空。

 

3迭代器

迭代器就是集合的取出元素的方式。

格式Iterator it=al.iterator();

while(it.hasNext())

{

   it.next();

}

 

4list集合的共性方法

list集合元素是有序的,可以重复;

Set集合元素是无序的,不可以重复。

 

增加add();在指定位置添加指定一个或多个元素。

删除remove();删除指定位置的元素。

修改set();将指定位置的元素用指定元素修改掉。

查找get();查找指定位置的元素。

获取sublist();获取指定位置之间的元素。

 

5Listiterator

listiteratorIterator的子接口,是List集合的特有方法。

在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生异常。

所以,在迭代时,只能用迭代器的方法操作元素,又因iterator的方法有限,需使用特有迭代器。

 

6linkedList

特有方法addFirstaddLast

            getFirstgetLast

              removeFirstremoveLast

 

1.6版本后的方法是:offerFirstofferLast

                      peekFirstpeekLast

                        pollFirstpollLast

 

7HashSet

HashSet存储自定义对象:

去除相同元素,如果元素的HashCode相同,才会判断equals方法是否为true

HashSet判断和删除的依据是元素的HashCode方法和equals方法。

 

8TreeSet

TreeSet可以对集合Set中的元素排序。

①、TreeSet排序的第一种方式:让元素自身具备比较性,元素需要实现Comparable 借口,复写CompareTo方法,这种方式成为元素,的自然排序,叫做默认排序。

②、TreeSet排序的第二种方式:当元素自身不具备比较性时,或者具备的比较性是不需要的,这时就需要让集合自身具备比较性。

比较器:定义一个类,实现Comparator借口,覆盖compare方法。

 

9泛型

泛型的好处:1.将运行时期出现的问题转移到编译时期,方便程序员解决问题。

            2.避免了强制转换类型的麻烦。

格式:通过<>来定义要操作的引用数据类型。

泛型类class Utils<QQ>

{

}

  Utils<QQ> s=new Utils<QQ>();

 

另外,还有泛型方法,泛型接口,泛型静态方法等。泛型定义<>放在返回值前面,修饰符后面。

 

10Map

Map集合是存储键值对,一对一对往里存,而且要保证唯一性。

Map集合的方法:

①、删除:void clear();

         V removekey);

②、判断:boolean containsValuevalue);

          boolean containsKeykey);

           boolean isEmpty();

③、获取:int size();

         V getkey);

         Collection<T> values();

④、添加:V putkv);

         void putAllMap<? extends k,? extends v> m);

Map子类对象:

HashTable:哈希表,不可以使用null值或null键,该集合是同步的。

HashMap:哈希表,可以使用null值或null键,该集合是不同步的。

TreeMap:二叉树,不同步。可以用于给Map集合中的键进行排序。

注:添加元素时,如果出现相同的键,那么后添加的值会覆盖原有键值对,并用put方法会返回被覆盖的值。

Map集合的两种去除方式:

①、keySet:先将集合中的键都取出来,然后通过迭代器去除所对应的值。

②、entrySet:先取出集合中的映射关系,然后通过迭代器取出所对应的键与值。

 

11集合框架的工具类

(1)、Collections-Sort:按照默认排序

(2)、Sort();按照指定比较器比较排序。

(3)、Collections-Max();获取集合中的最大值。

(4)、Max();按照指定比较器比较出最大值。

(5)、Collections-fill();将集合中的所有元素全部替换为指定元素。

(6)、replaceAll();将集合中的指定元素用新的元素替换掉。

(7)、set();根据指定位置用新元素替换。

(8)、Collections-reverse();将指定集合中的元素反转。

(9)、reverseOrder();将指定集合按照原比较顺序的相反顺序排序。即反转排序规则。

(10)、Collections-swap();将指定位置的两元素置换。

(11)shuffle();随机置换。

(12)Arrays:用来操作数组的工具类,里面都是静态方法。

(13)Arrays-aslist:将数组变成list集合。

 

好处:可以使用集合的思想和方法来操作数组中的元素。但不可以使用集合的增删方法,因为数组的长度是固定的。

另外,集合变数组的好处是为了对元素的操作。

 

12增强for循环

高级for循环格式:for(数据类型 变量名 :被遍历的集合或数组){}

限制:高级for循环对集合进行遍历,只能获取元素,不能对集合进行操作。



0 0