0
点赞
收藏
分享

微信扫一扫

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

sunflower821 2022-03-12 阅读 89

前言


文章目录

知识点

  • 容器(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接口方法来更便捷地解决问题!

举报

相关推荐

0 条评论