zoukankan      html  css  js  c++  java
  • Collection子接口

                                                  list接口

         上一章介绍了collection接口,知道他是一个位于顶端的接口,他有许多子类,今天我们来看两个比较常用的子类,list和set

    首先list集合

    List接口的常用子类有:

    1ArrayList集合

    2 LinkedList集合

    list集合是带有索引的,因此List集合迭代方式除了使用迭代器之外,还可以使用索引进行迭代。

            

    for (int i = 0; i < list.size(); i++) {
        String str = list.get(i);
        System.out.println(str);            
    }

    和数组一样,可以用for循环输出

    list集合的数据存储结构:

    首先数据存储的常用结构有:栈,队列,数组,链表

    栈:是一种先入后出的存储结构,就是先进去的元素存入栈底,最后进入的元素进入栈顶

    我们常用top指针来判断栈空或者栈满,还有元素的地址位置

    1.进栈(PUSH)算法
    ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
    ②置TOP=TOP+1(栈指针加1,指向进栈地址);
    ③S(TOP)=X,结束(X为新进栈的元素);
    2.退栈(POP)算法
    ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
    ②X=S(TOP),(退栈后的元素赋给X):
    ③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
     
     
    队列:
    刚才介绍了栈,现在来看看队列的介绍,队列是一种先进先出的线性表,他有队首指针和队尾指针,
    front和rear,当这两个指针指向同一个位置时,对空
     
    链表:链表分为单链表,双链表和循环链表
    链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
     
     
     

                                       set接口

            前面的几个接口都可以放重复元素,但是set接口不允许放重复元素

     HashSet集合存储数据的结构(哈希表)

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            Set<String> set=new HashSet<String>();
            set.add("今天中午吃什么");
            set.add("1");
            set.add("排骨面");
            //因为没有索引值,所以不能用简单的for循环遍历
            Iterator<String> it=set.iterator();
            while(it.hasNext()){
                System.out.println(it.next());
            }
            for(String str:set){
                System.out.println(str);
            }
        }

    哈希表又叫散列表,是通过关键码值来直接访问的数据结构,大大提高了数据查询的速度,它通过把关键码值映射到表中一个位置来访问记录,这个映射函数

    又叫散列函数

                                      map接口

      前面介绍的几种接口,元素都是孤立存在的,但是map接口,存储的元素是由键和值一起存在的

    //自定义类做键的时候,一定要重写hascode和equals方法
        public static void key(){
            HashMap<person,String> hs=new HashMap<person,String>();
            hs.put(new person("aaa",18),"java");
            hs.put( new person("bbb",21),"php");
            hs.put( new person("aaa",18),"net");
            hs.put(new person("ccc",21),"java");
            System.out.println(hs);
        }
        public static void valuee(){
            HashMap<String,person> hs=new HashMap<String,person>();
            hs.put("java", new person("aaa",18));
            hs.put("php", new person("bbb",21));
            hs.put("net", new person("aaa",18));
            hs.put("java",new person("ccc",21));
            System.out.println(hs);
        }
  • 相关阅读:
    智器SmartQ T7实体店试用体验
    BI笔记之SSAS库Process的几种方案
    PowerTip of the Day from powershell.com上周汇总(八)
    PowerTip of the Day2010071420100716 summary
    PowerTip of the Day from powershell.com上周汇总(十)
    PowerTip of the Day from powershell.com上周汇总(六)
    重新整理Cellset转Datatable
    自动加密web.config配置节批处理
    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable
    在VS2003中以ClassLibrary工程的方式管理Web工程.
  • 原文地址:https://www.cnblogs.com/jingyukeng/p/8883001.html
Copyright © 2011-2022 走看看