知了堂学习笔记java中常用集合的理解
Posted 小谭先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知了堂学习笔记java中常用集合的理解相关的知识,希望对你有一定的参考价值。
最近学习了java中常用集合类的一些知识,在这里作为一只小白,我来谈谈我的理解,顺带总结知识点。
引入:在没有接触之前,听到集合,给我感觉是想到了数学中的集合一样,里面存放着一个一个的元素。其实不然,这个集合也就差不多,是用来存放元素的容器。
Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成。
今天我要谈的主要是,如下图所示:
1.Collection
Collection是最基本的集合类型,若要检查Collection中的元素,可以使用forEach遍历,也可以使用迭代器,实现了Collection接口的类,都可以这样操作。用法如下:
package 集合; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class CollectionTest_1 { public static void main(String[] args) { Collection<String> collection = new ArrayList<String>(); collection.add("苹果一"); collection.add("苹果二"); collection.add("苹果三"); //第一种方式通过forEach遍历打印 System.out.println("通过forEach遍历打印如下:"); for(String str:collection){ System.out.println(str); } System.out.println("-------------------------"); //第二种方式通过iterator遍历打印 System.out.println("通过iterator迭代器打印如下所示:"); Iterator<String> it = collection.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } }
1.1 List 接口
1.1.1 ArrayList 类
ArrayList从数据结构上来说,为顺序线性结构,用户若要对数据经常查阅或者是获取数据时,本类为用户的最佳选择类。常用方法: add();addAll();get();size();set();remove();isEmpty();至于它们的例子,我就不一一举了,更多的方法可通过Api文档去查阅。
1.1.2 LinkedList 类
1.1.3 Stack 类
1 package 集合; 2 3 import java.util.Stack; 4 5 public class StackTest1 { 6 public static void main(String[] args) { 7 Stack<Integer> st = new Stack<Integer>(); 8 st.push(1); 9 st.push(2); 10 st.push(3); 11 st.push(4); 12 st.push(5); 13 14 System.out.println(st.pop());//5 栈顶的那一个是一个最先出来的 15 System.out.println("栈的长度为:"+st.size());//4 计算移除栈中的尺寸 16 //st.peek();是指要将栈中的某一个元素拿出用,但它仍在栈中,栈中的长度与没执行这条语句之前是一样的 17 System.out.println(st.peek());//4 18 int value = st.peek();//4 将要用到集合中的值得时候,就用peek()方法 19 int a =10; 20 int result = value+a;//result=4+10=14 21 System.out.println(result);//14 22 System.out.print("栈的长度为:"+st.size());//4 计算移除栈中的尺寸 23 24 } 25 }
输出结果为:
5
栈的长度为:4
4
14
栈的长度为:4
至于结果,代码中注释写的比较清楚了,这里我就不在说了。
下面是一个LinkedList集合实现堆栈的代码:
1 public class LinkedListTest1 { 2 public static void main(String[] args) { 3 LinkedStack ls = new LinkedStack(); 4 Apple apple1 = new Apple("苹果一"); 5 Apple apple2 = new Apple("苹果二"); 6 Apple apple3 = new Apple("苹果三"); 7 ls.push(apple1); 8 ls.push(apple2); 9 ls.push(apple3); 10 11 System.out.println(ls.pop()); 12 System.out.println(ls.pop()); 13 System.out.println(ls.pop()); 14 } 15 } 16 class LinkedStack { 17 private LinkedList<Apple> list = new LinkedList<Apple>(); 18 public void push(Apple apple){ 19 list.addLast(apple); 20 } 21 public Apple pop(){ 22 return list.removeLast(); 23 } 24 } 25 class Apple{ 26 String name; 27 public Apple() { 28 } 29 public Apple(String name) { 30 super(); 31 this.name = name; 32 } 33 public String getName() { 34 return name; 35 } 36 public void setName(String name) { 37 this.name = name; 38 } 39 @Override 40 public String toString() { 41 return "圣诞苹果 [name=" + name + "]"; 42 } 43 }
输出结果为:
圣诞苹果 [name=苹果三]
圣诞苹果 [name=苹果二]
圣诞苹果 [name=苹果一]
可以看到,先进后出的特点。
1.2 Set
Set是一种不包括重复元素的Collection,即它里面的任意两个元素a,b,都有a.equals(b)=false。
很明显的可以知道Set有个约束条件,传入的collection参数不包含重复元素。
1.2.1 HashSet
哈希结构,特点是无序不重复,请看案例:
1 public class HashSetTest_1 { 2 public static void main(String[] args) { 3 Set<String> set = new HashSet<>(); 4 set.add("第一个"); 5 set.add("第二个"); 6 set.add("第三个"); 7 set.add("第一个"); 8 set.add("第四个"); 9 System.out.println(set.size());//4 10 for(String str:set){ 11 System.out.println(str); 12 } 13 } 14 }
输出结果:
4
第二个
第四个
第三个
第一个
可以看到:1.我在set中添加了五个元素,有相同的元素,值读出了一个。说明了不重复的特点。
2.输出的结果顺序,与我添加的顺序完全不同,则说明了它的无序特点。
2.Map
Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。
2.1 HashMap
多用于通过键值获取值得查询。与HashMap类似的有HashTable,这里就不祥说区别了。这个HashMap的用法,我就不贴代码了,请谅解。
以上,就是作为一只小白,在最近学的知识,做出了自己的一点理解,文中如果有不对的地方,还请各位大佬们,给我指出来。
需更多的了解和学习请进入:
知了堂官网 www.zhiliaotang.com
以上是关于知了堂学习笔记java中常用集合的理解的主要内容,如果未能解决你的问题,请参考以下文章