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

xiaoxiao2021-02-28  70

// 使用迭代遍历集合 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"); //一个新值换所有的旧值 }
转载请注明原文地址: https://www.6miu.com/read-83735.html

最新回复(0)