【蓝桥杯】十四招式冲刺之 “第六招”《Java API》

前言

-🏀大家好,我是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接口方法来更便捷地解决问题!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BXuan随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值