前言
-🏀大家好,我是BXuan,热爱编程与篮球的软件工程大二学生一名
-📚近期在准备4月份的蓝桥省赛,本章与大家一起聊聊有关java常用API!
-🏃放弃不难,但坚持一定很酷。
文章目录
知识点
- 容器(Vetcor)讲解
- 线性表(List)的使用
- 队列(Queue)的使用
- 集合(set)的使用
- 映射(map)的使用
🙋♂️容器
Vector 容器(类)
线性表中有 Vector 和 list,两者作用比较相似。
Vector 的主要作用就是可变长度的数组,就把他当成数组使用即可。
Vector 可以当作数组使用,用起来非常简单,也非常方便。
//第一种构造方法创建一个默认的向量,默认大小为 10:
Vector()
//第二种构造方法创建指定大小的向量。
Vector(int size)
//第三种构造方法创建指定大小的向量,并且增量用 incr 指定。
//增量表示向量每次增加的元素数目。
Vector(int size,int incr)
//第四种构造方法创建一个包含集合 c 元素的向量:
Vector(Collection c)
详细可见java Vector的API。
真题解析
1、题目描述
快递员需要对快递进行分拣,现在小李是一名快递员,他想要你帮他设计一个程序用于快递的分拣,按城市分开。
现在有以下输入:
单号 省份
请你将单号按照城市分开,并输出。
城市按照输入顺序排序
单号按照输入顺序排序
示例:
输入
10
10124214 北京
12421565 上海
sdafasdg213 天津
fasdfga124 北京
145252 上海
235wtdfsg 济南
3242356fgdfsg 成都
23423 武汉
23423565f 沈阳
1245dfwfs 成都
输出
北京 2
10124214
fasdfga124
上海 2
12421565
145252
天津 1
sdafasdg213
济南 1
235wtdfsg
成都 2
3242356fgdfsg
1245dfwfs
武汉 1
23423
沈阳 1
23423565f
理解:
首先中国城市肯定在 1000 个以内,但是单号不确定,我们不可能每个数组开 10000 个,那样内存不够,所以这时候就用到了 vector,他的容量是动态申请的,可以理解为无限制。
2、代码示例
package E_lanqiao;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;
public class Main {
static Vector city=new Vector<String>();
static Vector <Vector<String>> dig= new Vector <Vector<String>>();
static int Myfind(String s)
{
for(int i=0;i<city.size();i++)
{
if(city.get(i) ==s) {
return i;
}
}
return -1;
}
public static void main(String[] args) {
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
for(int i=0;i<n;i++)
{
String d,c;
d=in.next();
c=in.next();
int flag=Myfind(c);
if(flag==-1){
city.addElement(c);
dig.addElement(new Vector<String>());
dig.get(city.size()-1).addElement(d);
}else
dig.get(flag).addElement(d);
}
for(int i=0;i<city.size();i++)
{
System.out.println(city.get(i)+" "+dig.get(i).size());
for(int j = 0; j< dig.get(i).size(); j++)
System.out.println(dig.get(i).get(j));
}
}
}
🙋♀️线性表 List
🙋♂️队列 Queue
真题回顾(CLZ的银行)
在本专栏的第二篇已详细讲解。
🙋♀️集合 Set
🙋♂️Map 映射
在之前学习散列表的时候就接触过了哈希映射,这里我们要讲的是一种类似的数据结构。
map 是一个关联容器,它提供一对一的 hash。
- 第一个可以称为关键字(key),每个关键字只能在 map 中出现一次
- 第二个可能称为该关键字的值(value)
map 以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map 主要用于资料一对一映射(one-to-one)的情況。
比如,像是管理班级内的学生,Key 值为学号,Value 放其他信息的结构体或者类。
真题回顾(弗里石的语言)
在本专栏第四篇已详细讲解
👏小结
java可调用的API非常多,我们在学习的过程中,不仅要认真学习每个数据结构以及算法实现的原理,更应该在了解原理的基础上懂得去调用已经实现地API接口方法来更便捷地解决问题!