首页 > 代码库 > Java集合类

Java集合类

    Java中常用的集合有List集合、Map集合和Set集合。List集合和Set集合继承了Collection接口

    List是一个元素有序、可重复的集合,List集合接口常用的实现类有ArrayList和LinkedList。ArrayList可以根据索引位置对集合进行快速的随机访问,缺点是向指定的索引位置插入对象或删除对象的速度较慢;LinkedList便于向集合中插入和删除对象,缺点是随机访问集合中的对象效率较慢

package com.list;

import java.util.Iterator;
import java.util.List;

/**
 * List是一个元素有序、可重复的集合
 */
public class ArrayOrLinkedList{
    public static void main(String[] args) {
       //List<User> arrayList=new java.util.ArrayList<User>();
       List<User> arrayList=new java.util.LinkedList<User>();
       User userOne=new User(1,"李四");
       User userTwo=new User(2,"张三");
       arrayList.add(userOne);
       arrayList.add(userTwo);
       //循环遍历
       for(int i=0;i<arrayList.size();i++){
           System.out.print(arrayList.get(i).getUserName()+" ");
       }
       //Iterator遍历
       Iterator<User> it=arrayList.iterator();
       while(it.hasNext()){
           System.out.print(it.next().getUserName()+" ");
       }
       //foreach
       for(User user:arrayList){
           System.out.print(user.getUserName()+" ");
       }
    }

}
package com.list;

/**
 * 用户类
 *
 */
public class User {

    private int userId;
    private String userName;

    public User(int userId, String userName) {
        super();
        this.userId = userId;
        this.userName = userName;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

}

   Set是一个元素无序、不可重复的集合,Set集合接口常用的实现类有HashSet和TreeSet

package com.list;

import java.util.Iterator;
import java.util.Set;

/**
 * Set是一个元素无序、不可重复的集合
 */
public class HashSet {

    public static void main(String[] args) {
           Set<User> hashSet=new java.util.HashSet<User>();
           User userOne=new User(1,"李四");
           User userTwo=new User(2,"张三");
           hashSet.add(userOne);
           hashSet.add(userTwo);
           //Iterator遍历
           Iterator<User> it=hashSet.iterator();
           while(it.hasNext()){
               System.out.print(it.next().getUserName()+" ");
           }
           for(User user : hashSet) {
             System.out.print(user.getUserName()+" ");
        }
    }

}

   Map集合存储的是键值(key-value)对 ,不能包含重复的key,但可以包含相同的value

package com.list;

import java.util.Iterator;
import java.util.Map;

public class HashMap {

    public static void main(String[] args) {
        Map<Integer, String> map = new java.util.HashMap<Integer, String>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "ab");
        map.put(4, "ab");
        map.put(4, "ab");
        System.out.println(map.size());
        // 第一种:
        /*
         * Set<Integer> set = map.keySet(); //得到所有key的集合
         * 
         * for (Integer in : set) { String str = map.get(in);
         * System.out.println(in + "     " + str); }
         */
        System.out.println("第一种:通过Map.keySet遍历key和value:");
        for (Integer in : map.keySet()) {
            // map.keySet()返回的是所有key的值
            String str = map.get(in);// 得到每个key多对用value的值
            System.out.println(in + "     " + str);
        }
        // 第二种:
        System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");
        Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<Integer, String> entry = it.next();
            System.out.println("key= " + entry.getKey() + " and value= "http://www.mamicode.com/+ entry.getValue());
        }
        // 第三种:推荐,尤其是容量大时
        System.out.println("第三种:通过Map.entrySet遍历key和value");
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            // Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
            // entry.getKey() ;entry.getValue(); entry.setValue();
            // map.entrySet() 返回此映射中包含的映射关系的 Set视图。
            System.out.println("key= " + entry.getKey() + " and value= "http://www.mamicode.com/+ entry.getValue());
        }
        // 第四种:
        System.out.println("第四种:通过Map.values()遍历所有的value,但不能遍历key");
        for (String v : map.values()) {
            System.out.println("value= "http://www.mamicode.com/+ v);
        }
    }
}

 

 

 

 

Java集合类