集合
Posted jiuxis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合相关的知识,希望对你有一定的参考价值。
1. 集合 ---(原文链接:https://blog.csdn.net/B_evan/article/details/80611522)
(1). 集合类存放于java.util包中。
(2). 集合类型主要有3种:set(集)、list(列表)和map(映射)。
(3). 集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。
简单来讲:集合就是一个放数据的容器,准确的说是放数据对象引用的容器。
2. 框架结构
3. Collection
public class CollDemo public static void main(String[] args) Collection collection = new ArrayList(); System.out.println(collection.getClass()); collection.add("a"); collection.add("a"); collection.add("b"); collection.add("abc"); System.out.println(collection); System.out.println(collection.contains("abc")); collection.remove("a"); System.out.println(collection); collection.clear(); System.out.println(collection); System.out.println(collection.isEmpty());
4. List
特点:有序,可重复
(1). List
public class ListDemo public static void main(String[] args) List list = new ArrayList(); System.out.println(list.getClass()); list.add("a"); list.add("a"); list.add("b"); list.add("abc"); System.out.println(list); list.set(1, "b"); System.out.println(list); list.remove(2); System.out.println(list); System.out.println(list.indexOf("a"));
(2). ArrayList
public class ArrayListDemo public static void main(String[] args) ArrayList arrayList = new ArrayList(); arrayList.add("a"); arrayList.add("a"); arrayList.add("b"); arrayList.add("abc"); Iterator iterator = arrayList.iterator(); while (iterator.hasNext()) String s1 = (String) iterator.next(); System.out.println(s1);
(3). LinkedList
public class LinkedListDemo public static void main(String[] args) LinkedList linkedList = new LinkedList(); linkedList.add("a"); linkedList.addFirst("b"); linkedList.offerFirst("c"); System.out.println(linkedList); System.out.println(linkedList); System.out.println(linkedList.removeFirst()); System.out.println(linkedList.removeLast()); System.out.println(linkedList); System.out.println(linkedList.pollFirst()); System.out.println(linkedList.pollLast()); System.out.println(linkedList); for (int i = 0; i < 5; i++) linkedList.add((char)(97+i)); System.out.println(linkedList); System.out.println(linkedList.pollFirst()); System.out.println(linkedList.pollLast()); System.out.println(linkedList);
5. Set
特点:无序,不可重复
(1). HashSet
public class HashSetDemo public static void main(String[] args) HashSet hashSet = new HashSet(); Student s1 = new Student("111", 111); Student s2 = new Student("222", 222); Student s3 = new Student("333", 333); Student s4 = new Student("111", 111); hashSet.add(s1); hashSet.add(s2); hashSet.add(s3); hashSet.add(s4); System.out.println(hashSet); Iterator iterator = hashSet.iterator(); while(iterator.hasNext()) Student st = (Student)iterator.next(); System.out.print(st.name + " ");
(2). TreeSet
public class TreeSetDemo public static void main(String[] args) TreeSet treeSet = new TreeSet(); treeSet.add(new Student("111", 111)); treeSet.add(new Student("222", 333)); treeSet.add(new Student("333", 333)); System.out.println(treeSet);
6. Map
特点:映射关系(键值对组成),双列集合
(1). HashMap
public class HashMapDemo public static void main(String[] args) HashMap<String, Integer> hashMap = new HashMap<String, Integer>(); hashMap.put("张三", 20); hashMap.put("李四", 30); hashMap.put("王五", 40); hashMap.put("赵六", 50); System.out.println(hashMap); System.out.println(hashMap.put("张三", 40)); System.out.println(hashMap); System.out.println(hashMap.get("张三")); System.out.println(hashMap.size()); Set<String> keySet = hashMap.keySet(); System.out.println(keySet); Set<Map.Entry<String, Integer>> entrySet = hashMap.entrySet(); Iterator<Map.Entry<String, Integer>> iterator = entrySet.iterator(); while(iterator.hasNext()) Map.Entry<String, Integer> entry = iterator.next(); System.out.println(entry.getKey() + ", " + entry.getValue());
7. Iterator
Java迭代器Iterator是 Java 集合框架中的一种机制,它提供了一种在不暴露集合内部实现的情况下遍历集合元素的方法。
public class RunoobTest public static void main(String[] args) // 创建集合 ArrayList<String> sites = new ArrayList<String>(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Zhihu"); // 获取迭代器 Iterator<String> it = sites.iterator(); // 输出集合中的所有元素 while(it.hasNext()) System.out.println(it.next());
8. 泛型 -- 泛指(不具体)的类型
(1). 避免了强制类型转换
(2). 将运行时ClassCastException异常转到了编译阶段
public class GenericDemo02 public static void main(String[] args) ArrayList<String> arrayList01 = new ArrayList<>(); arrayList01.add("a"); arrayList01.add("b"); ArrayList<Integer> arrayList02 = new ArrayList<>(); arrayList02.add(1); arrayList02.add(2); private static void m1(ArrayList<String> arrayList) Iterator<String> iterator = arrayList.iterator(); while(iterator.hasNext()) String str = iterator.next(); System.out.println(str);
9. Lambda表达式
public class LambdaDemo public static void main(String[] args) ArrayList<String> arrayList = new ArrayList<>(); arrayList.add("zhangsan"); arrayList.add("lisi"); arrayList.add("wangwu"); arrayList.add("zhaoliu"); arrayList.sort((o1, o2) -> System.out.println(o1.compareTo(o2)); return o1.compareTo(o2); ); System.out.println(arrayList);
以上是关于集合的主要内容,如果未能解决你的问题,请参考以下文章
数学分析集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
数学分析集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )
Groovy集合声明与访问 ( 使用 [] 创建 ArrayList 和 LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 )