黑马程序员_集合框架

------- android培训 java培训 、期待与您交流! ----------

 

 五。集合框架

1.1概念: 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作。就对对象进行存储,集合就是存储对象。

    集合Collection

               |-----List

               |-----Set

1.2共性方法:

       创建:Arraylist al=new Arraylist();

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

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

      打印:sap(al);

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

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

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

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

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

1.3迭代器

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

    格式:Iterator it=al.iterator();

               while(it.hasNext())

               {

                   it.next();

               }

1.4list集合的共性方法

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

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

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

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

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

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

1.5Listiterator

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

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

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

1.6linkedList

  特有方法:addFirst,addLast

                    getFirst,getLast

                    removeFirst,removeLast

1.6版本后的方法是offerFirst,offerLast

                              peekFirst,peekLast

                              pollFirst,pollLast

1.7HashSet

 HashSet存储自定义对象:

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

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

1.8TreeSet

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

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

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

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

1.9泛型

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

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

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

  泛型类:class Utils<QQ>

                {

                }

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

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

  泛型限定:? extends E(上限) ;? super E(下限)。另外,?叫通配符,还可以理解为占位符。

1.10Map

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

     Map集合的方法:

        删除:void clear();

                  V remove(key);

       判断:boolean containsValue(value);

                  boolean containsKey(key);

                  boolean isEmpty();

      获取:int size();

                V get(key);

                Collection<T> values();

      添加:V put(k,v);

                 void putAll(Map<? extends k,? extends v> m);

     Map子类对象:

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

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

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

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

  Map集合的两种去除方式:

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

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

 1.11集合框架的工具类

   Collections-Sort:按照默认排序

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

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

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

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

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

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

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

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

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

                      shuffle();随机置换。

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

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

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

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

1.12增强for循环

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

                               {}

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

1.13可变参数

  格式 : 数据类型   。。。变量名

  使用时要注意可变参数一定要定义在参数列表的最后面。

1.14静态导入

    格式:import static Java.util.Arrays.*;

    注意:当类名重名时,要指定具体的包名。

               当方法名重名时,需指定具备所属的类或对象。

                     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值