Day7 Collection.泛型(三)

1. List集合:1>extends Collection接口,有序的,有索引,允许有重复元素;防止索引越界异常;

                     2>方法:add(" "); //添加元素; add(3," "); //在制定索引添加元素;

                                    remove(index); //移除集合中指定位置;

                                    set(index," "); //将指定位置的内容替换成指定内容;

                                    for(int i = 0; i<list.size() ;i++){ String s = list.get(i); }//for loop遍历集合;

                                    while(it.hasNext()){String s = it.next();} // 迭代器;

                                    for(String s : list){ } //增强for loop;

2. ArrayList集合:底层是一个数组;多线程,效率高;增删慢,查找快;

3. LinkedList集合:底层是一个链表;多线程,效率高;增删快,查找慢;

4. Set集合:extends Collection接口,无重复元素,无索引,不能使用带索引的方法,也不能for loop;

5. HashSet接口:1>哈希表结构,速度快,无顺序的,存储和取出元素的顺序可能不一致;

                                 Set<Integer> set = new HashSet<>();

                                 set.add();

                                 Interator<Integer> it = set.iterator();

                                 while(it.hasNext()){

                                           Integer n = it.next();

                                  } // 遍历的另一种方式:for ( Integer i : set ){ System.out.println(i); }

                              2>哈希值:十进制,系统随机给的逻辑地址值

                              3>哈希表:数组+链表/红黑树(提高查询的速度); 查询的速度快;

                                                数组将元素进行分组,相同哈希值的分一组,链表/红黑树把相同的哈希值元素连到一起;

6.Set集合存储元素不重复:存储元素重写HashCode和equals方法保证无重复;

7.HashSet存储自定义类型元素:存储元素重写HashCode和equals方法保证无重复;

8.LinkedHashSet集合:有序的,不允许重复的链表;

9.可变参数:方法的参数列表数据类型已确定,参数个数不确定,可以使用可变参数;

                     底层是一个数组,根据传递参数个数不同,创建不同长度数组,存储这些参数传递的参数个数;

                        PS:一个方法的参数列表,只有一个可变参数;如果方法的参数有多个,可变参数必须卸载参数列表末尾; 

10.addAll&shuffle:Collection.addAll(list,"a","b","c"); // 向集合中添加多个元素;

                                Collection.shuffle(list); // 打乱集合中元素顺序;

11.sort(List):Collections.sort(list01); // 默认升序排列集合;

                      被排序的集合里存储的元素,必须实现Comparable,重写接口中的方法compareTo定义排序的规则;

                      Comparable接口的排序规则:自己(this)- 参数:升序;

12.sort(List,Comparator):Comparable接口的排序规则:o1- o2;

                                           int result = o1.getAge() - o2.getAge();

                                           if(result == 0){

                                                result = o1.getName().charAt(0) - o2.getName().charAt(0);

                                           } return result; //组合排序;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值