JAVA集合(List,Map.Set)相关操作



// 使用迭代遍历集合 set 集合不允许包含相同的元素
    public static void readSet(Set set){
        //在迭代过程中不能修改集合元素
        Iterator it = set.iterator();
        if(set!=null){
            while (it.hasNext()){
                String s=(String) it.next();
                System.out.println(s);
            }
        }
    }

// 使用foreach 遍历集合元素
    public static void readSetByForeach(Set set){
        for(Object obj :set){
            System.out.println(obj);
        }
    }


 Treeset 确保集合元素处于排序状态   采用红黑树的数据结构
 只有当需要一个保存排序的集合时 才使用treeset 否则都应该使用hashset  都是线程不安全的



List<String> c = new ArrayList<String>();
        List<String> c1 = new ArrayList<String>();
        c.add("拉拉了撒");
        c.add("dasdas");
        c.clear();  //清除集合所有元素
        c1.addAll(c); // 把其他集合的元素加到指定集合
        c1.contains("ss"); // 判断集合c1 中是否有ss元素
        c1.containsAll(c);// 判断集合c1是否有listc 的所有元素
        c1.retainAll(c);// 从集合中删除集合c 不包含的元素
        c1.toArray(); // 把集合转换为数组
// list  根据索引来操作集合
    public static void list(List list){
        list.add("");
        list.get(1);//根据索引来访问
        list.set(1, "");
        list.subList(1, 4);// 截取集合元素
    }
    public static void readList(List list){
        ListIterator lit=list.listIterator();
        while (lit.hasNext()){
            System.out.println(lit.next());
        }
        //反向迭代集合
        while (lit.hasPrevious()){
            System.out.println(lit.previous());
        }
    }
ArrayList线程安全的集合  Vector 线程不安全的集合 按时性能低 还提供一个stack 子类



map 的相关操作
public static void map(Map map){
        map.clear();// 删除所有key value 对
        map.containsKey("");//查询数组是否包含指定key
        map.containsValue("");//查询数组是否包含指定value
        map.get("key"); // 根据key 来访问value
        map.keySet();//返回所有的key 集合
        map.put("", "");//添加元素
        map.putAll(map);//把指定map的元素复制到本map中
        map.remove("key"); //根据key来删除对应的元素 
        map.values();// 返回map中所有value 组成的集合

    }
读取map集合
    public static void readMap(Map map){
        Object key = null;
        Object value = null;
        Iterator it = map.keySet().iterator();
        while (it.hasNext()){
            key=it.next();
            value=map.get(key);
        }
    }



Map用于存储键值对,不允许键重复,值可以重复。
     *1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
     * HashMap最多只允许一条记录的键为null,允许多条记录的值为null* HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。
     * 如果需要同步,可以用Collections.synchronizedMap(HashMap map)方法使HashMap具有同步的能力。
     *2)Hashtable与HashMap类似,不同的是:它不允许记录的键或者值为空;
     * 它支持线程的同步,即任一时刻只有一个线程能写Hashtable,然而,这也导致了Hashtable在写入时会比较慢。
     *3)LinkedHashMap保存了记录的插入顺序,在用Iteraor遍历LinkedHashMap时,先得到的记录肯定是先插入的。
     * 在遍历的时候会比HashMap慢。
     *4)TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iteraor遍历TreeMap时,
     * 得到的记录是排过序的

借助TreeMap的排序功能可以对map进行排序



操作集合的工具类   collections

    public static void collections(List list){
        Collections.reverse(list);//  list集合次序反转
        Collections.sort(list); // 排序
        Collections.shuffle(list); //list集合随机顺序排序
        Collections.replaceAll(list, "", "newVal"); //一个新值换所有的旧值


    }
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值