Java集合

Collection:    collection接口中的常用方法
                boolean add(E e)----向集合中添加一个元素,E 是元素的数据类型        1111
                boolean addAll(Collection c) ---向集合中添加集合 c 中的所有元素        1111
                void clear()--  删除集合中的所有元素
                boolean contains(Object o) ----判断集合中是否存在指定元素
                boolean containsAll(Collection c)-----判断集合中是否包含集合 c 中的所有元素
                boolean isEmpty()---判断集合是否为空
                Iterator<E>iterator()---返回一个 Iterator 对象,用于遍历集合中的元素
                        Iterator it1=list2.iterator();
                                                        Iterator迭代器中的方法:
                                                                            boolean hasNext()--如果迭代具有更多元素,则返回 true 。 
                                                                            E next()---返回迭代中的下一个元素。 
                                                                            remove:---从底层集合中删除此迭代器返回的最后一个元素(可选操作)
                        
                boolean remove(Object o)----从集合中删除一个指定元素
                boolean removeAll(Collection c)----从集合中删除所有在集合 c 中出现的元素
                boolean retainAll(Collection c)---仅仅保留集合中所有在集合 c 中出现的元素
                int size()----返回集合中元素的个数
                Object[] toArray()---返回包含此集合中所有元素的数组
            --->set   元素不重复
                    HashSet: 为优化查询速度而设计的   基于HashMap实现,底层使用HashMap保存所有的元素     不可重复  
                                HashSet 类是按照哈希算法来存储集合中的元素,使用哈希算法可以提高集合元素的存储速度,
                                当向 Set 集合中添加一个元素时,HashSet 会调用该元素的 hashCode() 方法,获取其哈希码,
                                然后根据这个哈希码计算出该元素在集合中的存储位置。
                                实现了Collection接口中的所有的方法,
                                            HashSet():构造一个新的空的 Set 集合。
                                            HashSet(Collection<? extends E>c):构造一个包含指定 Collection 集合元素的新 Set 集合。
                                            其中,“< >”中的 extends 表示 HashSet 的父类,即指明该 Set 集合中存放的集合元素类型。
                                            c 表示其中的元素将被存放在此 Set 集合中。
                                HashSet hs=new HashSet();    //调用无参的构造函数创建HashSet对象
                                HashSet<String> hss=new HashSet<String>();    //创建泛型的 HashSet 集合对象
                                                HashSet<String> bookSet=new HashSet<String>();    //创建一个空的 Set 集合
                                                String book1=new String("如何成为 Java 编程高手");
                                                bookSet.add(book1);    //将 bookl 存储到 Set 集合中
            ---》List:有序  可重复      可以容纳null,保证元素的存储位置
                                            List list=new ArrayList();
                            --》ArrayList      数组实现的List,进行快速随机的访问    效率高 而且实现可变大小的数组
                                            ArrayList 类提供了快速的基于索引的成员访问方式,对尾部成员的增加和删除支持较好。
                                                使用 ArrayList 创建的集合,允许对集合中的元素进行快速的随机访问,不过,向 ArrayList 中插入与删除元素的速度相对较慢。
                                            ArrayList  除了Collection中的方法之外,含有的List接口中 含有的方法
                                                        E get(int index)---获取此集合中指定索引位置的元素,E 为集合中元素的数据类型
                                                        int index(Object o)---返回此集合中第一次出现指定元素的索引,如果此集合不包含该元素,则返回 -1
                                                        int lastIndexOf(Obj ect o)---返回此集合中最后一次出现指定元素的索引,如果此集合不包含该元素,则返回 -1
                                                        E set(int index, E element)---将此集合中指定索引位置的元素修改为 element 参数指定的对象。此方法返回此集合中指定索引位置的原元素
                                                        List<E> subList(int fromlndex, int tolndex)---(包含开始,不包含结束位置)返回一个新的集合,新集合中包含 fromlndex 和 tolndex 索引之间的所有元素。包含 fromlndex 处的元素,不包含 tolndex 索引处的元素
                                                                
                            --》LinkedList    对顺序访问进行了优化  随机访问较慢  可以当做栈Stack或者队列Queue来使用
                                            LinkedList<String> products=new LinkedList<String>(); 
                                             String p1=new String("六角螺母");
                                              products.add(p1);    //将 pi 对象添加到 LinkedList 集合中
                                            LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素。
                                            需要频繁向集合中插入和删除元素时,使用 LinkedList 类比 ArrayList 类效果高,
                                            但是 LinkedList 类随机访问元素的速度则相对较慢。这里的随机访问是指检索集合中特定索引位置的元素。
                                            包含了除了Collection接口中的方法和List接口中的方法之外的一些其他方法
                                                void addFirst(E e) ---将指定元素添加到此集合的开头
                                                void addLast(E e)    ---将指定元素添加到此集合的末尾
                                                E getFirst()---    返回此集合的第一个元素
                                                E getLast()---返回此集合的最后一个元素
                                                E removeFirst()---删除此集合中的第一个元素
                                                E removeLast()---删除此集合中的最后一个元素
            ---》Map:HashMap   键值对   键值不可重复----
                                Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。
                                    其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。
                                ---》HashMap 类按哈希算法来存取键对象
                                          HashMap users=new HashMap()
                                           users.put("11","张浩太");    //将学生信息键值对存储到Map中
                                            Iterator it=users.keySet().iterator();
                                              while(it.hasNext())
                                                {
                                                    //遍历 Map
                                                    Object key=it.next();//键值
                                                    Object val=users.get(key);
                                                    System.out.println("学号:"+key+",姓名:"+val);
                                                }
                                             Scanner input=new Scanner(System.in);
                                            System.out.println("请输入要删除的学号:");
                                            int num=input.nextInt();
                                            if(users.containsKey(String.valueOf(num)))
                                            {    //判断是否包含指定键
                                                users.remove(String.valueOf(num));    //如果包含就删除
                                            }
                                            else
                                            {
                                                System.out.println("该学生不存在!");
                                            }
                                            it=users.keySet().iterator();
                                            while(it.hasNext())
                                            {
                                                Object key=it.next();
                                                Object val=users.get(key);
                                                System.out.println("学号:"+key+",姓名:"+val);
                                            }
                                            
                                ---》TreeMap 类可以对键对象进行排序。
                            Map接口中提供的方法:
                                    V get(Object key)---返回 Map 集合中指定键对象所对应的值。V 表示值的数据类型
                                    V put(K key, V value)---    向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null
                                    V remove(Object key)---从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如 果没有,则返回null
                                    Set entrySet()---返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据 类型为 Map.Entry
                                    Set keySet()---返回 Map 集合中所有键对象的 Set 集合
                            

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值