zoukankan      html  css  js  c++  java
  • 容器(list集合)

    --为什么使用集合而不使用数组?why

    ·集合和数组相似点:都可以存储多个对象,对外作为一个整体存在;

    ··数组的缺点:1.长度必须在初始化时指定,且固定不变;

                            2.数组采用连续存储空间,删除和添加元素效率低下;

                            3.数组无法直接保存映射关系;

    Connection 接口存储一组不唯一,无序的对象;

    List 接口存储一组不唯一,有序(索引顺序)的对象;

    Set接口存储一组唯一,无序的对象;

    Map接口存储一组键值对象,提供key到value的映射;  

                                             -----  Key 唯一,无序;  value不唯一,无序;

    <List集合>---------------------------------是collection集合的子接口;

    特点:有序,不唯一(可重复);

    ArrayList:--在内存中分配连续的空间,实现了长度可变的数组;

                    --优点:遍历元素和随机访问元素的效率表较高;

                    --缺点:添加和删除需大量移动元素效率低,按照内容查询效率

    LinkedList:--采用链表存储方式。

                      --缺点:遍历和随机访问元素低下。

                      -- 优点:插入、删除元素效率比较高(但是前提也是必须低效率查询)

    集合当中常用到的方法:------增----删----改-----查------

    1.添加的方法:add(int index,E e);    ---->在制定位置进行添加元素。

                             addAll(Collection c);---->添加全部。

    2.删除的方法:remove(int index);---->根据角标位置删除元素

                             remove(Object obj);---->根据内容进行删除元素

                             removeAll(Collection c);---->删除集合

    3.修改的方法:set(int index,E element);

    4.查询的方法:get(int index);根据角标进行查询元素

    ------------------------------------

    5.获取集合大小的方法---->size();

    6.判断集合是否为空的方法---->isEmpty();

    7.清除集合当中所有的元素的方法---->clear();

    8.集合和数组之间能否转换

                集合---------->数组转换        toArray()                  <T> T[] toArray(T[] a)

    迭代器输出的原理:先判断集合当中是否有元素,如果有则进行获取,反之,循环结束。

    public class ArrayListTest {
        public static void main(String[] args) {
            //1.实例化List接口对象
            List<String> list = new ArrayList<String>();
            //2.添加的方法
            list.add("javaSE");
            list.add("javaEE");
            list.add("HTML5");
            list.add("CSS3");
            list.add("JavaScript");    
            //遍历集合元素
            System.out.println("---------------标准for循环---------------");
            for(int i=0;i<list.size();i++) {
                //i变量相当于角标   最大角标:list.size()-1;
                //list集合当中存在一个get(int index)
                System.out.println(list.get(i)+" ");
            }
            System.out.println();
            System.out.println("--------------增强for循环---------------");
            for (String str : list) {
                System.out.println(str+" ");
            }
            System.out.println();
            System.out.println("--------------迭代输出Iterator---------------");
            Iterator<String> iter = list.iterator();
            while(iter.hasNext()) {
                System.out.println(iter.next()+" ");
            }
        }
    }

         

  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/bjsxt123/p/8982477.html
Copyright © 2011-2022 走看看