爱程序网

Java集合

来源: 阅读:

Collection

  Collection是一个接口,允许集合中有重复元素,也能禁止元素重复;既可以强制排序也可以不限制顺序,下面看看Collection中一些常用的基本方法

 1         Collection<String> hashSet = new HashSet<>();
 2         hashSet.add("hello Collection");// 添加元素
 3         Collection<String> arrays=Arrays.asList("a","b","c");
 4         hashSet.addAll(arrays);//添加一个集合
 5         System.out.println(hashSet.size());//获取集合元素个数
 6         System.out.println(hashSet.contains("b"));//集合是否包含某个元素
 7         System.out.println(hashSet.containsAll(arrays));//集合是否包含某组元素
 8         Object[] elments=hashSet.toArray();//集合转数组
 9         String[] strings=hashSet.toArray(new String[0]);//指定元素转换
10         hashSet.remove("a");//删除单个元素
11         hashSet.removeAll(arrays);//删除一组元素

 Set

  Set不能有两个引用指向同一个对象,或者指向null,即使是a.equals(b)=true也不行,因为它是无重复对象组成的集合;如果在Set集合中添加已有的元素,并不会抛出异常,而是返回一个Boolean值false

  继承之Set的SortedSet接口进一步扩充了集合的方法

 1         SortedSet<String> treeSet = new TreeSet<>();
 2         treeSet.add("a");
 3         treeSet.add("b");
 4         treeSet.add("c");
 5         System.out.println(treeSet.first());//获取集合中的第一个元素
 6         System.out.println(treeSet.last());//获取集合中的最后一个元素
 7         //返回除了第一个元素之外的所有元素
 8         SortedSet<String> tail= treeSet.tailSet(treeSet.first()+'\0');
 9         System.out.println(tail);
10         //返回除了最后一个元素之外的所有元素
11         SortedSet<String> head=treeSet.headSet(treeSet.last());
12         System.out.println(head);
13         //截取第N个元素到M个元素之间的所有元素
14         SortedSet<String> middle=treeSet.subSet(treeSet.first()+'\0', treeSet.last());
15         System.out.println(middle);

 List

  和集(Set)不同,List是有序的对象集合,并且可以包含重复元素,列表的大小可以随着元素的数量变化,不像数组一样固定,List也继承了Collection的方法,同时也扩展了一些方法

 1         java.util.List<String> list=Arrays.asList("Hello","Java");
 2         java.util.List<String> arrayList=new ArrayList<>(list);
 3         System.out.println(arrayList.get(0));//通过索引获取集合元素
 4         arrayList.set(0, "Hi");//通过索引设置集合的元素
 5         System.out.println(arrayList.get(0));
 6         arrayList.add(1, "Bob");
 7         System.out.println(arrayList);//通过索引插入元素
 8         System.out.println(arrayList.indexOf("Bob"));//查询某个元素的位置
 9         System.out.println(arrayList.lastIndexOf("Java"));//反向查询某个元素的位置
10         arrayList.retainAll(list);//删除与list不相同的元素
11         System.out.println(arrayList);
12         arrayList.clear();//清除所有元素
13         System.out.println(arrayList);

 Map

  Map是一系列键值对,一个键对应一个值,可以把Map看作是Set加Collection组合的集合,Map的键就像Set一样,不允许有重复元素,同样来看下Map常用 的一些方法

 1         Map<Integer , String> map=new HashMap<>();
 2         String[] words={"a","b","cc"};
 3         for (int i = 0; i < words.length; i++) {
 4             map.put(i, words[i]);//通过put方法填充Map
 5         }
 6         System.out.println(map);
 7         System.out.println(map.get(1));//获取键值为1对应的值
 8         System.out.println(map.containsKey(5));//是否包含某个键
 9         System.out.println(map.containsValue("b"));//是否包含某个值
10         //把映射关系的键和值分别作集合处理
11         Set<Integer> keys=map.keySet();
12         System.out.println(keys);
13         Collection<String> values=map.values();
14         System.out.println(values);
15         for (Map.Entry<Integer, String> elment: map.entrySet()) {
16             System.out.println(elment);
17         }
18         map.remove(1);//删除键值对
19         System.out.println(map);

集合中常用的一些技巧

  通过Collections类的静态方法,可以对集合进行一些操作

 1         java.util.List<Integer> numbers=Arrays.asList(12,5,6,8,11,4);
 2         Collections.sort(numbers);//排序
 3         System.out.println(numbers);
 4         Collections.reverse(numbers);//反转
 5         System.out.println(numbers);
 6         Collections.shuffle(numbers);//打乱顺序
 7         System.out.println(numbers);
 8         //最大值、最小值
 9         Collections.max(numbers);
10         Collections.min(numbers);

  防止并发访问集合

1         java.util.List<String> list=Collections.synchronizedList(new ArrayList<String>());
2         Map<Integer, String> map=Collections.synchronizedMap(new HashMap<Integer,String>());

  只读集合

        java.util.List<String> words=Collections.unmodifiableList(new ArrayList<String>());

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助