LIst和map的遍历

1.

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

View Code

2.linkedList

public static void mainString[] 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.printlnstr);
    }
    // 获取链表头数据
    System.out.println"链表头数据:" + list.getFirst));
    // 获取链表尾数据
    System.out.println"链表尾数据:" + list.getLast));
}

View Code

排序

public static void mainString[] args) {
    // 创建list
    List<Integer> list = new ArrayList<Integer>);
    // 插入元素
    list.add2);
    list.add0);
    list.add3);
    list.add4);
    list.add1);
    Collections.sortlist);
    for int i : list) {
        System.out.printlni);
    }
}

View Code

public static void mainString[] 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.getInstancejava.util.Locale.CHINA);
    Collections.sortlist, cmp);
    for String str : list) {
        System.out.printlnstr);
    }
}

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 mainString[] args) {
        List<User> userlist = new ArrayList<User>);
        userlist.addnew User"Y - 易小星 ", 33));
        userlist.addnew User"W - 王大锤", 33));
        Comparator<User> cmp = new ComparatorUser);
        Collections.sortuserlist, cmp);
        for User user : userlist) {
            System.out.printlnuser.getName));
        }
    }
}
class ComparatorUser implements Comparator<User> {
    @Override
    public int compareUser u1, User u2) {
        // 先按年龄排序
        int flag = u1.getAge).compareTou2.getAge));
        // 年龄相等比较姓名
        if flag == 0) {
            return u1.getName).compareTou2.getName));
        } else {
            return flag;
        }
    }
}
class User {
    private String name;
    private Integer age;
    public User) {
        super);
    }
    public UserString name, Integer age) {
        super);
        this.name = name;
        this.age = age;
    }
    public String getName) {
        return name;
    }
    public void setNameString name) {
        this.name = name;
    }
    public Integer getAge) {
        return age;
    }
    public void setAgeInteger age) {
        this.age = age;
    }
}

View Code

遍历

public static void mainString[] 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.printlnstr);
    }
    System.out.println"第二种遍历方法 - >");
    for int i = 0; i < list.size); i++) {
        System.out.printlnlist.geti));
    }
    System.out.println"第三种遍历方法 - >");
    Iterator<String> iter = list.iterator);
    while iter.hasNext)) {
        System.out.printlniter.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 mainString[] args) {
        List<String> list = new ArrayList<String>);
        // 插入元素
        list.add"list1");
        list.add"list2");
        list.add"list2");
        list.add"list3");
        // 实例化新的list防止因传递地址而达不到测试效果。
        remove1new ArrayList<String>list));
        remove2new ArrayList<String>list));
        remove2_1new ArrayList<String>list));
        remove3new ArrayList<String>list));
    }
    public static void remove1List<String> list) {
        System.out.print"第一种方法 - > ");
        try {
            for String str : list) {
                if str.equals"list2"))
                    list.removestr);
            }
        } catch Exception e) {
            System.out.println"移除失败!");
        }
    }
    public static void remove2List<String> list) {
        System.out.print"第二种方法 - > ");
        for int i = 0; i < list.size); i++) {
            String str = list.geti);
            if str.equals"list2"))
                list.removestr);
        }
        System.out.printlnlist);
        System.out.println"也有异常,可以用下面的方法避免。");
    }
    public static void remove2_1List<String> list) {
        System.out.print"第二种方法修正 - > ");
        for int i = 0; i < list.size); i++) {
            String str = list.geti);
            if str.equals"list2")) {
                list.removestr);
                // 因移除了元素,位置发生偏移,需要重新对当前位置的元素进行判断。
                i--;
            }
        }
        System.out.printlnlist);
    }
    public static void remove3List<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.printlnlist);
    }
}

View Code

map4中遍历

public static void mainString[] 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.getkey));
  }
  
  //第二种
  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

今天多一点积累,明天少一分烦恼

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注