• java集合


    Collection接口---单身狗集合

    Map接口---夫妇集合(Key,Value)

    Collection的子接口List接口(ArrayList实现类)和Queue接口存储的数据是排列有序,可以重复的,子接口set存储的数据是无序不能重复的。

    List接口常用的实现类ArrayList,一般用泛型限制集合中add的元素类型,泛型要用引用类型,不能用基本类型,可以用基本类型的包装类。泛型集合可以添加泛型的子类的对象实例。

    Set接口的常用实现类HashSet,循环set中的数据只能用foreach或者iterator方法,因为Set是无序的,不能用下标访问,只能遍历.

    Set中,添加某个对象,无论添加多少次,最后只保留一个对象(其实是该对象的引用),并且保留的是第一次添加的(因为后续添加的是添加不进去的)

    package per.test;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    
    public class TestCollection {
    
        public static void main(String[] args) {
            
            /**************************ArrayList遍历方法***********************************/
            List<String> strs = new ArrayList<String>();
            strs.add("1");
            strs.add("2");
            strs.add("3");
            strs.add("4");
            strs.add("5");
            //用foreach的方式遍历ArrayList数据
            for (String str:strs) {//也可写成for (int i=0;i<strs.size();i++) 
                System.out.println(str);
            }
            //将链表形式数据转换成数组的形式,再用foreach循环
            //String[] srtTmp= (String[]) strs.toArray();java.lang.ClassCastException:
            String[] srtTmp= new String[strs.size()];
            strs.toArray(srtTmp);
            for (String string : srtTmp) {//也可写成for (int i=0;i<srtTmp.length;i++) 
                System.out.println(string);
            }
            //用迭代器的方式遍历 --iterator
            Iterator<String> iterator = strs.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
            /**************end*************/
            
            /**************************Map遍历方法***********************************/
            Map<String, String> map = new HashMap<String, String>();
            map.put("1", "a");
            map.put("2", "b");
            map.put("3", "c");
            map.put("4", "d");
            //用foreach循环遍历,分别取key,value的值
            for (String key:map.keySet()) {
                System.out.println("key="+key+" ,val="+map.get(key));
            } 
            //用迭代的方式遍历,先用map.entrySet拿到迭代器
            //Map.Entry描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。
            Iterator<Map.Entry<String, String>> iterator2 = map.entrySet().iterator();
            while (iterator2.hasNext()) {
                //System.out.println("key="+iterator2.next().getKey()+"val="+iterator2.next().getValue());
                //出力错误:key=1val=b  key=3val=d
                //原因:调用了两次iterator2.next(),每次调用next都会往下移动一个元素,
                //key=1然后往下移动一个,取value时就取得下一个的value
                //修改
                Map.Entry<String, String> entry= iterator2.next();
                System.out.println("key="+entry.getKey()+" ,val="+entry.getValue());
            }
            
            //推荐的遍历方式,通过Map.entrySet遍历key和value
            for (Map.Entry<String, String> entry:map.entrySet()) {
                System.out.println("key="+entry.getKey()+" ,val="+entry.getValue());
            }
            /**************end*************/
        }
    }
  • 相关阅读:
    poj2186强连通分量
    poj1459SAP最大流模板题
    poj2391Floyd+二分+最大流
    curl上传下载入门
    Mysql存储过程
    小球旋转
    钟表单摆
    java小记 摘抄
    servlet的一些收集总结
    Javascript基础小结
  • 原文地址:https://www.cnblogs.com/blackheartinsunshine/p/6027106.html
Copyright © 2020-2023  润新知