泛型集合

public class ListTest {

    public static void main(String[] args) {
        //创建几个新闻对象
        News news1=new  News(1, "新闻1");
        News news2=new  News(2, "新闻2");
        News news3=new  News(3, "新闻3");
         //创建一个List集合
        List list=new ArrayList(); //现在 集合中存放的Object
         list.add(1);
         list.add("abc");
         list.add(news1);
        //遍历集合
         for (Object object : list) {
            System.out.println(object);
        }         
         
         System.out.println("**************************");
        /*
         * 现在 我只想存放 News 新闻 
         * 泛型集合
         * 在创建集合的时候,就已经规定了集合中允许存放的类型!
         * 如果后续进行新增操作时候,插入了类型不一致的数据,会编译报错!
         */
        List<News>  news=new ArrayList<News>();  //new ArrayList();
         //news.add(1);  编译报错
        //news.add(null);  可以存放 Null         
        news.add(news1);         
        news.add(news2);         
        news.add(news3);
        System.out.println("集合的大小:"+news.size());  //4
        //遍历
        for (News n : news) {
            System.out.println(n.getTitle());  //不需要强制类型转化 直接输出
        }
        System.out.println("***********************");     
        
        //List <int> i=new ArrayList();  不能使用基本数据类型
        List<Integer> i=new  ArrayList();  //对应类型的封装类
        List<String> s=new  ArrayList();  //只能存放String类型        
    }
}

Map的泛型集合

创建Student实体类

public class Student {
    private  Integer  studentNo;  //学生的编号是唯一的
    private  String  name;
    private  Integer  age;
    private  String  sex;
    
    @Override
    public String toString() {
        return "Student [studentNo=" + studentNo + ", name=" + name + ", age="
                + age + ", sex=" + sex + "]";
    }
    public Student() {
        super();
    }
    public Student(Integer studentNo, String name, Integer age, String sex) {
        super();
        this.studentNo = studentNo;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    
    public Integer getStudentNo() {
        return studentNo;
    }
    public void setStudentNo(Integer studentNo) {
        this.studentNo = studentNo;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}

创建测试类

public class MapTest {
    public static void main(String[] args) {
        /*
         * 创建一个Map的泛型集合
         * 之前
         * Map  map=new HashMap();
         * key和value全都是 Object类型
         */
        Map  m=new HashMap();
        m.put(1, 2);
        m.put("1","2");
        m.put(1.0, 2.0);
        System.out.println("map集合的大小:"+m.size());  //3
        System.out.println("************************************");
                
        //创建几个新闻对象
        Student stu1=new Student(1, "新闻1", 1000, "女");
        Student stu2=new Student(2, "新闻2", 10000, "女");
        Student stu3=new Student(3, "新闻3", 1000, "女");
        //泛型集合   key只能是Integer
        Map<Integer,Student> map=new HashMap<Integer, Student>();
        //map.put(1, 1); 默认装箱操作  int基本数据类型转换成Interge封装类
        map.put(stu1.getStudentNo(), stu1);
        map.put(stu2.getStudentNo(), stu2);
        map.put(stu3.getStudentNo(), stu3);
        //遍历之前获取keySet
        Set<Integer> keySet = map.keySet();
        //01. for加强
        for (Integer key : keySet) {
            //根据key取得对应的Student对象
            System.out.println(map.get(key));
        }
        System.out.println("***************************");
        //02. iterator
        Iterator<Integer> it = keySet.iterator();
        while (it.hasNext()) {
            /*Integer key=it.next();
            map.get(key);*/
            System.out.println(map.get(it.next()));
        }
        System.out.println("***************************");
        /*
         * 03. entrySet() 同时可以获取 key和value 
         *    之前都是先获取key 之后拿key取得value
         */
        Iterator iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Entry entry = (Entry) iterator.next();
            System.out.println("map的key===>"+entry.getKey());
            System.out.println("map的value===>"+entry.getValue());
        }
    }
}

 Map集合遍历

public class MapTest {
    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);
        }
    }
}
原文地址:https://www.cnblogs.com/areyouready/p/6835018.html