zoukankan      html  css  js  c++  java
  • java web必须掌握的基础知识

    一、IO部分
    1、读写文件:字节流用于复制文件,字符流便于含有中文信息的分析文件
    InputStream
    read() read(byte[])
    OutputStream
    write 、write(byte[],start,length)
    2、包装模式
    3、转换流 InputStreamReader, OutputStreamWriter
    4、PrintStream PrintWriter 封装write,重载的print和println方法
    5、BufferedReaeder的readLine方法
    6、File API 判断文件/目录是否存在,创建文件/目录,获得文件大小、文件删除
    7、#深度优先/广度优先遍历目录

    二、集合部分
    1.接口关系图 think in java
    Iterator <---  Collection <--- Map

            package cn.techson;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    //循环遍历map的方法
    public class CollectionTest {
    public static void main(String[] args) {
       Map<String, Integer> tempMap = new HashMap<String, Integer>();
       tempMap.put("a", 1);
       tempMap.put("b", 2);
       tempMap.put("c", 3);
       // JDK1.4中
       // 遍历方法一 hashmap entrySet() 遍历
       System.out.println("方法一");
       Iterator it = tempMap.entrySet().iterator();
       while (it.hasNext()) {
        Map.Entry entry = (Map.Entry) it.next();
        Object key = entry.getKey();
        Object value = entry.getValue();
        System.out.println("key=" + key + " value=" + value);
       }
       System.out.println("");
       // JDK1.5中,应用新特性For-Each循环
       // 遍历方法二
       System.out.println("方法二");
       for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {
        String key = entry.getKey().toString();
        String value = entry.getValue().toString();
        System.out.println("key=" + key + " value=" + value);
       }
       System.out.println("");

       // 遍历方法三 hashmap keySet() 遍历
       System.out.println("方法三");
       for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
        Object obj = i.next();
        System.out.println(obj);// 循环输出key
        System.out.println("key=" + obj + " value=" + tempMap.get(obj));
       }
       for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
        Object obj = i.next();
        System.out.println(obj);// 循环输出value
       }
       System.out.println("");

       // 遍历方法四 treemap keySet()遍历
       System.out.println("方法四");
       for (Object o : tempMap.keySet()) {
        System.out.println("key=" + o + " value=" + tempMap.get(o));
       }
       System.out.println("11111");

       // java如何遍历Map <String, ArrayList> map = new HashMap <String,
       // ArrayList>();
       System.out
         .println("java 遍历Map <String, ArrayList> map = new HashMap <String, ArrayList>();");
       Map<String, ArrayList> map = new HashMap<String, ArrayList>();
       Set<String> keys = map.keySet();
       Iterator<String> iterator = keys.iterator();
       while (iterator.hasNext()) {
        String key = iterator.next();
        ArrayList arrayList = map.get(key);
        for (Object o : arrayList) {
         System.out.println(o + "遍历过程");
        }
       }
       System.out.println("2222");
       Map<String, List> mapList = new HashMap<String, List>();
       for (Map.Entry entry : mapList.entrySet()) {
        String key = entry.getKey().toString();
        List<String> values = (List) entry.getValue();
        for (String value : values) {
         System.out.println(key + " --> " + value);
        }
       }
    }
    }

    使用EL表达式遍历Map集合

       <%

         Map map=new HashMap();

       map.put("a", "1");

       map.put("b", "2");

       map.put("c", "3");

       pageContext.setAttribute("map",map);

         %>

         <c:forEach items="${map}" var="m">

         键:${m.key}

         值:${m.value}

         </c:forEach>

    使用EL表达式遍历Map集合(值存放的是对象)

     <%

        Person p=new Person();

        p.setAddress("aa");

        p.setName("aa");

        Person p2=new Person();

        p2.setAddress("bb");

        p2.setName("bb");

              Person p3=new Person();

          p3.setAddress("cc");

            p3.setName("cc");

          Map map=new HashMap();

        map.put("a", p);

        map.put("b", p2);

        map.put("c", p3);

          pageContext.setAttribute("map",map);

         %>

         <c:forEach items="${map}" var="m">

         ${m.key}

         ${m.value.name}//m.value取得的是对象的内存地址,所以可以直接用m.value.name(name为Person对象的属性)

         </c:forEach>

    使用struts标签<logic:iterate />遍历

    <%

        List list=new ArrayList();

        list.add("aa");

        list.add("bb");

        list.add("cc");

        Map map=new HashMap();

        map.put("a", list);

        pageContext.setAttribute("map",map);

         %>

        <logic:iterate id="m" name="map">

        键:${m.key}

        <logic:iterate id="childm" name="m" property="value">内层标签的name对应的是外层标签的id,一定要加上property="value"

        值:${childm}

        </logic:iterate>

        </logic:iterate>


    2.ArrayList 自动扩容数组
    3、LinkedList 双向循环链表
    4、使用LinkedList实现队列和栈结构
    5、HashMap ---- 哈希算法 、如何进行排重(覆盖对象HashCode和Equals)
    6、TreeMap ---- 排重、排序(类实现Compareable接口,覆盖compareTo)
    7、List有序,Set无序
    遍历list 三种方式(下标、迭代器、foreach),遍历set两种方式(迭代器、foreach)
    8、Properties 读取properties文件
    9、JDK1.2 线程安全类
    Vector和ArrayList
    结构有问题的Stack extends Vector类
    HashTable和HashMap

  • 相关阅读:
    iOS中block实现的探究
    [ES6] 19. for ... of
    [ES6] 18. Map
    [ES6] 17. Set
    [ES6] 16. Object Enhancements
    [MEAN Stack] First API -- 5. Using $resource to setup REST app
    [AngularJS] Provider
    [MEAN Stack] First API -- 4. Organize app structure
    [AngularJS] ngCloak
    [Angular-Scaled Web] 9. Control your promises with $q
  • 原文地址:https://www.cnblogs.com/biggestfish/p/2991398.html
Copyright © 2011-2022 走看看