zoukankan      html  css  js  c++  java
  • LIst和map的遍历

    1.

    public static void main(String[] args) {
        // ArrayList类实现一个可增长的动态数组
        List<String> list = new ArrayList<String>();
        // 插入元素
        list.add("list1");
        list.add("list2");
        // 打印list的大小
        System.out.println(list.size());
        // 按索引移除元素
        list.remove(0);
        // 按对象移除元素
        list.remove("list2");
        // 打印list的大小
        System.out.println(list.size());
        // 清空list
        list.clear();
    }
    View Code

    2.linkedList

    public static void main(String[] args) {
        // LinkedList类实现了链表,可初始化化为空或者已存在的集合
        LinkedList<String> list = new LinkedList<String>();
        // 插入元素
        list.add("list2");
        list.add("list3");
        // 向链表头插入数据
        list.addFirst("list1");
        // 向链表尾插入数据
        list.addLast("list4");
        for (String str : list) {
            System.out.println(str);
        }
        // 获取链表头数据
        System.out.println("链表头数据:" + list.getFirst());
        // 获取链表尾数据
        System.out.println("链表尾数据:" + list.getLast());
    }
    View Code

    排序

    public static void main(String[] args) {
        // 创建list
        List<Integer> list = new ArrayList<Integer>();
        // 插入元素
        list.add(2);
        list.add(0);
        list.add(3);
        list.add(4);
        list.add(1);
        Collections.sort(list);
        for (int i : list) {
            System.out.println(i);
        }
    }
    View Code
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("一鸣惊人-Y");
        list.add("人山人海-R");
        list.add("海阔天空-H");
        list.add("空前绝后-K");
        list.add("后来居上-H");
        Comparator<Object> cmp = Collator.getInstance(java.util.Locale.CHINA);
        Collections.sort(list, cmp);
        for (String str : list) {
            System.out.println(str);
        }
    }
    View Code
    package net.xsoftlab.baike;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    public class TextList {
        public static void main(String[] args) {
            List<User> userlist = new ArrayList<User>();
            userlist.add(new User("Y - 易小星 ", 33));
            userlist.add(new User("W - 王大锤", 33));
            Comparator<User> cmp = new ComparatorUser();
            Collections.sort(userlist, cmp);
            for (User user : userlist) {
                System.out.println(user.getName());
            }
        }
    }
    class ComparatorUser implements Comparator<User> {
        @Override
        public int compare(User u1, User u2) {
            // 先按年龄排序
            int flag = u1.getAge().compareTo(u2.getAge());
            // 年龄相等比较姓名
            if (flag == 0) {
                return u1.getName().compareTo(u2.getName());
            } else {
                return flag;
            }
        }
    }
    class User {
        private String name;
        private Integer age;
        public User() {
            super();
        }
        public User(String name, Integer age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
    }
    View Code

    遍历

    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        // 插入元素
        list.add("list1");
        list.add("list2");
        list.add("list3");
        System.out.println("第一种遍历方法 - >");
        for (String str : list) {
            System.out.println(str);
        }
        System.out.println("第二种遍历方法 - >");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("第三种遍历方法 - >");
        Iterator<String> iter = list.iterator();
        while (iter.hasNext()) {
            System.out.println(iter.next());
        }
    }
    View Code

    遍历时移除元素

    package net.xsoftlab.baike;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    public class RemoveItemFromList {
        public static void main(String[] args) {
            List<String> list = new ArrayList<String>();
            // 插入元素
            list.add("list1");
            list.add("list2");
            list.add("list2");
            list.add("list3");
            // 实例化新的list防止因传递地址而达不到测试效果。
            remove1(new ArrayList<String>(list));
            remove2(new ArrayList<String>(list));
            remove2_1(new ArrayList<String>(list));
            remove3(new ArrayList<String>(list));
        }
        public static void remove1(List<String> list) {
            System.out.print("第一种方法 - > ");
            try {
                for (String str : list) {
                    if (str.equals("list2"))
                        list.remove(str);
                }
            } catch (Exception e) {
                System.out.println("移除失败!");
            }
        }
        public static void remove2(List<String> list) {
            System.out.print("第二种方法 - > ");
            for (int i = 0; i < list.size(); i++) {
                String str = list.get(i);
                if (str.equals("list2"))
                    list.remove(str);
            }
            System.out.println(list);
            System.out.println("也有异常,可以用下面的方法避免。");
        }
        public static void remove2_1(List<String> list) {
            System.out.print("第二种方法修正 - > ");
            for (int i = 0; i < list.size(); i++) {
                String str = list.get(i);
                if (str.equals("list2")) {
                    list.remove(str);
                    // 因移除了元素,位置发生偏移,需要重新对当前位置的元素进行判断。
                    i--;
                }
            }
            System.out.println(list);
        }
        public static void remove3(List<String> list) {
            System.out.print("第三种方法 - > ");
            Iterator<String> iter = list.iterator();
            while (iter.hasNext()) {
                String str = iter.next();
                if (str.equals("list2"))
                    iter.remove();
            }
            System.out.println(list);
        }
    }
    View Code

    map4中遍历

    public static void main(String[] args) {
    
    
      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");
      
      //第一种:普遍使用,二次取值
      System.out.println("通过Map.keySet遍历key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }
      
      //第二种
      System.out.println("通过Map.entrySet使用iterator遍历key和value:");
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry<String, String> entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
      
      //第三种:推荐,尤其是容量大时
      System.out.println("通过Map.entrySet遍历key和value");
      for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
    
      //第四种
      System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }
    View Code
    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    支付宝支付-扫码支付
    安装agent
    设置微服务环境变量脚本
    曹工说Spring Boot源码(23)-- ASM又立功了,Spring原来是这么递归获取注解的元注解的
    matlab文件拷贝
    hive优化之调整mapreduce数目
    软件测试面试题
    wtforms第三方校验库
    flask貌似可以学习和参考的网站
    flask 接受(获取)url 请求的参数 的方法 和 表单 post过来的数据
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/5712898.html
Copyright © 2011-2022 走看看