1. 栈
后进先出的栈结构:
public static void main(String[] arg){
//栈API的使用简介
Stack<Integer> anss=new Stack<>();//泛型声明方法
//添加元素部分
anss.add(3); //add和push实现功能类似,都是向栈顶添加一个元素,
anss.push(4); //区别在于返回值,add()返回boolean值
//输出元素部分:
System.out.println(anss.peek());//peek()方法返回栈顶元素,
System.out.println(anss.pop());//而pop()会将栈顶元素弹出,但返回值仍然是栈顶元素
System.out.println(anss.peek());
//判断是否为空:
if(!anss.empty())
System.out.println(anss.pop());
}
对应输出为:4,4,3,3
2. 队列
public static void main(String[] arg){
//队列API的使用简介
Queue<Integer> anss=new LinkedList<>();//泛型声明方法:LinkedList实现了queue接口;
//一般声明一个队列的时候都是使用LinkedList
//添加元素部分
anss.add(3); //add和offer实现功能类似,都是向队尾添加一个元素,
anss.offer(4); //区别同样在于返回值,offer()返回boolean值
//当添加失败的时候,add()则会返回异常,所以这里推荐使用offer(),返回 false
//输出元素部分:
System.out.println(anss.peek());//peek()方法返回队首元素,
System.out.println(anss.poll());//而poll()会将队首元素弹出,但返回值仍然是队首元素
System.out.println(anss.peek());
//判断是否为空:
if(!anss.isEmpty()) //和栈有所不同使用的是,isEmpty来判断是否为空
System.out.print(anss.poll());
}
对应的输出为:3,3,4,4
3. 哈希表(HashMap)
3.1 基本使用方法
public static void main(String[] arg){
//HashMap声明方法:
Map<Character,Integer> anss=new HashMap<>();//如果用函数来理解,
// 第一个字符类型可以理解为x,
//对应的数字可以理解为y
//输入或者得到y值
anss.put('w',5);//如果映射关系是第一次建立,返回值为null;
anss.put('s',2);//否则将代替之前的映射关系,同时返回之前的值,也就是y
anss.put('h',1);
System.out.println(anss.get('w'));//得到x所对应的y
//删除存在的映射
anss.remove('w');//如果存在映射,就删除该映射,并返回值
//判断是否存在x或者y
if(!anss.containsKey('w')){
System.out.println("想寻找的x-y映射不存在");
}
if(anss.containsValue(1)){
System.out.println("存在想寻找的y值");
}
//判断HashMap是否为空
if(!anss.isEmpty())
{
System.out.println("还不是空的");
}
}
对应的输出为:
5
想寻找的x-y映射不存在
存在想寻找的y值
3.2 遍历哈希表的方法
这里推荐使用效率较高的entrySet的迭代器,这里来通过遍历删除HashMap中所有的元素:
public static void main(String[] arg){
//HashMap声明方法:
Map<Character,Integer> anss=new HashMap<>();//如果用函数来理解,
// 第一个字符类型可以理解为x,对应的数字可以理解为y
//输入或者得到y值
anss.put('w',5);
anss.put('s',2);
anss.put('h',1);
//遍历删除
Iterator<Map.Entry<Character,Integer>> it;
it=anss.entrySet().iterator();
while (it.hasNext()){
Map.Entry<Character,Integer> tem=it.next();
System.out.print(tem.getKey()+" ");
System.out.print(tem.getValue()+" ");
it.remove();
}
//判断HashMap是否为空
if(anss.isEmpty())
{
System.out.println("遍历删除成功");
}
}
对应的输出为:s 2 w 5 h 1 遍历删除成功
。
更多的遍历方法可参见https://www.cnblogs.com/xiaobaituyun/p/10615457.html