欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

ArrayList和HashMap简析,arraylisthashmap

来源: javaer 分享于  点击 36828 次 点评:179

ArrayList和HashMap简析,arraylisthashmap


HashMap:无序,存储个数不固定,可以动态添加数据,以键值对的形式存储数据,其中键是不能重复的,值是可以重复的。1、声明:               HashMap<引用数据类型,引用数据类型 > map;2、定义 :  HashMap<Integer, String> map1 = new HashMap<Integer,String>(); // 推荐  HashMap<Integer,String> map2 = new HashMap<>(); // 推荐  jdk8开始支持第一种写法  HashMap<Integer, String> map3 = new HashMap();
3、常用的方法:           put() 往集合添加数据(键值对)           size() 键值对的个数           get(key) 返回指定键所映射的值   根据键,去相对应的值            isEmpty()  判断集合是否有键值对  没有的话就是 true 否则就是 false            containsKey(key)  判断是否包含 指定的键            containsValue(value)  判断是否包含 指定的值            clear()      清空集合中所有的键值对                               remover(key)  删除某个键值   4 、HashMap的遍历:                 
Map<String, String> map = new HashMap<String, String>();
    map.put("k1", "v1");
    map.put("k2", "v2");
    map.put("k3", "v3");
    //将map.keySet()得到的键赋给str,再通过map.get(str)得到值
    for(String str:map.keySet()){
        System.out.println(map.get(str));
    }
  ArrayList  : 有序的集合  并且有下标   和数组一样下标从0开始,有顺序的                    1.声明:                            ArrayList names;                        2.定义:                            ArrayList names = new ArrayList();                            ArrayList<String> list1 = new ArrayList();                            ArrayList<String> list = new ArrayList<>(); // 推荐                            ArrayList<String> list2 = new ArrayList<String>();// 推荐                            ArrayList list3 = new ArrayList<>();                            ArrayList list4 = new ArrayList();
                  3、 常用的方法:                        add()  添加元素
                        get()  根据索引获取对应的值  索引是从 0 开始的
                        remove(); 根据索引删除指定的值 删除之后,后面的元素会上位
                        isEmpty()  判断是否为空                        indexOf()  根据指定的对象返回该对象在集合中首次出现的索引,如果没有就返回 -1;                        lastIndexOf()  根据指定的对象返回 该对象在集合中最后一个位置上的索引  如果没有就返回 -1                        set(int index, E element)   用指定的元素替代此列表中指定位置上的元素。                        size() 获取集合的长度                        toArray() 把集合转化成数组                         例:Object[] objArr = list.toArray();  // 集合转化成数组                        Arrays.toString  把数组转化成字符串                          例:String str = Arrays.toString(objArr); // 数组转化成字符串                         Arrays.asList();    //将数组转换为集合list
                         如果数组是引用数据类型,那么就会把数组中的每个元素,存储到集合中去,转化成集合后,那么这个集合                     不可以进行添加删除操作,但可以进行修改操作    Integer[] arr = {1,2,3,4,5};    List<Integer> asList = Arrays.asList(arr);    //不可以进行添加和删除操作 但可以进行修改操作    asList.add(22);     asList.remove(2);    asList.set(2, 30);
    如果是基本数据类型的数组 ,那么就会把整个数组当成一个对象 存储到集合中去    int[] arr = {1,2,3,4};    List<int[]> asList = Arrays.asList(arr);    System.out.println(asList);  //打印出来的所存储的地址    System.out.println(asList.size()); //==1  大小为1,因为当成了一个对象                   常常使用Arrays.asLisvt()后调用add,remove这些method时出现java.lang.UnsupportedOperationException异常。这是由于:Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等 method在AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。ArrayList override这些method来对list进行操作,但是Arrays$ArrayList没有override remove(int),add(int)等,所以throw UnsupportedOperationException。
解决方法是使用Iterator,或者转换为ArrayList
List list = Arrays.asList(a[]);
List arrayList = new ArrayList(list);

List<Map<object,objevct>>  遍历:

Map map = new HashMap<String, Object>();
    map.put("1", "fds");
    map.put("2", "valu");
    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    list.add(map);
    for (Map<String, Object> m : list)
    {
      for (String k : m.keySet())
      {
        System.out.println(k + " : " + m.get(k));
      }

    }


相关文章

    暂无相关文章

用户点评