• 20210416----java---list&map&stack


    ArrayList<Integer> arrayList = new ArrayList<Integer>();
    for (int i = 0; i < 100000; i++) {
        arrayList.add(i);
    }
    for (int i = 0; i < 10000; i++) {
        arrayList.get(i);
    }
    for (int i = 9999; i >=0; i--) {
        arrayList.remove(i);
    }
    
    Iterator<String> it = list.iterator();
    while (it.hasNext()) {
    System.out.println(it.next());
    }
    
    2.indexOf(Object obj)方法和lastIndexOf(Object obj)方法的区别
    在使用List集合时需要注意区分indexOf(Object obj)方法和lastIndexOf(Object obj)方法,前者是获得指定对象的最小的索引位置,而后者是获得指定对象的最大的索引位置,前提条件是指定的对象在List集合中具有重复的对象,否则如果在List集合中有且仅有一个指定的对象,则通过这两个方法获得的索引位置是相同的
    
    在使用subList(int fromIndex, int toIndex)方法截取现有List集合中的部分对象生成新的List集合时,需要注意的是,新生成的集合中包含起始索引位置代表的对象,但是不包含终止索引位置代表的对象
    
    如果涉及到多线程,那么就选择Vector(当然,你也可以使用ArrayList并自己实现同步)。
    
    如果不涉及到多线程就从LinkedList、ArrayList中选。 LinkedList更适合从中间插入或者删除(链表的特性)。 ArrayList更适合检索和在末尾插入或删除(数组的特性)

    遍历方式
    ----1. 普通fori 方式遍历
    for (int i = 0; i < j; i++)
    {
    list.get(i);
    }

    ----2. iterate()迭代器方式(collection 集合共有方法)
    Iterator<Integer> iterator = list.iterator();
    while (iterator.hasNext())
    {
    iterator.next();
    }

    for (Iterator<Integer> iterator = list.iterator();
    {
    iterator.next();
    }

    ----3.增强for
    for (int item : list)
    {
    // System.out.println(item);
    }

    ----4.forEach() 注意java8 才支持
    list.forEach(item ->
    { // System.out.println(item); });

    ----5. stream().forEach() 注意java8 才支持
    list.stream().forEach(item -> { // System.out.println(item); });

    ----6. parallelStream().forEach() 注意java8 才支持
    list.parallelStream().forEach(item -> { // System.out.println(item); });

    Map

    Map<Integer,Integer> map=new HashMap<>();

    map.put(xx,xx)

    map.get(xx)

    map.containsKey(xx)

    map.size()

    map.remove()

    map1.putAll(map2);//合并时如果map2的key与map1的key有重复的,则map2的键值覆盖与map1重复的键值

    map.clear();

    map.values();

    Collection values = map.values();

    ----------1. 这是最常用的方式,在键值都需要的时候map.entrySet() 加增强for------------------

    for(Map.Entry<String, String> entry : map.entrySet()){
        String mapKey = entry.getKey();
        String mapValue = entry.getValue();
        System.out.println(mapKey+":"+mapValue);
    }
    -------2. 在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能上比使用entrySet较好;-------------

    //key
    for(String key : map.keySet()){
        System.out.println(key);
    }
    //value
    for(String value : map.values()){
        System.out.println(value);
    }
    -------3. 通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作--------------
    for(String key : map.keySet()){
        String value = map.get(key);
        System.out.println(key+":"+value);
    }

    ----4. 通过迭代器 map.entrySet().iterator()-----
    Iterator<Entry<String, String>> entries = map.entrySet().iterator();
    while(entries.hasNext()){
        Entry<String, String> entry = entries.next();
        String key = entry.getKey();
        String value = entry.getValue();
        System.out.println(key+":"+value);
    }
    -------5. JDK8新特性新增的lambda表达式遍历Map的方法——Map.forEach();------------
    map.forEach( (key,value) -> {} );
    map.forEach((k,v)-> 
    {
    System.out.println(k+":"+v); });

    ---map.entrySet().stream().forEach 注意:java8 才支持----
    map.entrySet().stream().forEach( (entry) -> {} );
    数组、链表、队列、栈,是数据结构中最基础的四大结构,数组和链表更是基础中的基础,后续所有复杂的数据结构都是在它们的基础上演变而来的。
    数组
    https://article.itxueyuan.com/prE0je
    https://segmentfault.com/a/1190000023501433
    Stack
    empty(), 判断是否为空
    peek(), 查看栈顶元素
    pop(), 移除栈顶元素
    push(), 元素压入栈中
    Character
    Character.toUpperCase(c);
    Character.toLowerCase(c);
    

      

    String 
    s.charAt(i);
    s.toCharArray();
    S.equals(T.substring(i,i+len_s))
    

      

     

  • 相关阅读:
    C语言 gets
    Android、iOS和Windows Phone中的推送技术
    Android的init过程(二):初始化语言(init.rc)解析
    Java向前引用容易出错的地方
    kears库中对样本图片resize的原理(target_size)
    gis python地理处理工具案例教程-字段多值批量替换综合案例
    arcpy地理处理工具案例教程-批量字段值替换
    arcpy地理处理工具案例教程-将满足条件的要素的字段值进行替换
    Keras split train test set when using ImageDataGenerator
    坐标转换7参数计算工具——arcgis 地理处理工具案例教程
  • 原文地址:https://www.cnblogs.com/vivian-xiaoyun/p/14671685.html
Copyright © 2020-2023  润新知