首页 > 编程语言 >蓝桥杯javaB组备赛

蓝桥杯javaB组备赛

时间:2024-04-02 20:55:38浏览次数:21  
标签:元素 javaB int void Object 蓝桥 static 组备赛 public

15届蓝桥杯备赛

java语法

基础IO框架

import java.util.*;
import java.IO.IOException;
import java.IO.BufferedReader;
public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] inputStrs = reader.raedLine().split(" ");
        //Scanner scanner = new Scanner(System.in);
        //String[] inputStrs = scanner.nextLine().split(" ");
        return;
    }
}

java容器

List
  1. ArrAyList
  2. LinkedList
  3. Vector
//增删改查方法
public void add(Object element) //增添元素
public void add(int index,Object element) //在指定位置增添元素
public boolean remove(Object o) //删除指定对象
public Object remove(int index) //删除指定位置的元素
public Object set(int index,Object element) //修改指定位置元素的值
public Object get(int index) //获取指定位置元素
public int indexOf(Object o) //获取指定元素的位置
public boolean contains(Object o) //判断指定元素是否存在
 
//其他常用方法
public int size() //获取容器中元素个数
public Iterator<E> iterator() //获取迭代器
public void clear() //清空元素

LinkList模拟队列和栈的接口

//模拟栈和队列操作
public void addFirst(Object o) //在链表头增添元素
public void addLast(Object o) //在链表尾增添元素
public Object removeFirst() //删除链表头元素,并返回该元素
public Object removeLast() //删除链表尾元素,并返回该元素
public boolean isEmpty() //判断链表是否为空
 
public void push(E e) //等价于addFirst()
public E pop() //等价于removeFirst()
public E getFirst() //获取链表首元素
public E getLast() //获取链表尾元素
Set
  1. HashSet
  2. TreeSet
//增删查方法
public void add(Object element) //增添元素
public boolean remove(object element) //删除元素
public boolean contains(Object o) //判断元素是否存在
 
//其他常用方法
public int size() //获取容器中元素个数
public boolean isEmpty() //判断集合是否为空
public Iterator<E> iterator() //获取迭代器
public void clear() //清空元素
Map
  1. HashMap
  2. TreeMap
//增删查
public Object put(Object key,Object value) //增添元素
public Object remove(Object key) //删除元素,并返回键对应的值
public Object get(Object key) //获取键对应的值
public boolean containsKey(Object key) //判断指定键是否存在
public boolean containsValue(Object value) //判断指定值是否存在
 
//获取键、值、元素集合
public Collection values() //获取值集合
public Set KeySet() //获取键集合
public Set entrySet() //获取元素集合
 
//其他方法
public int size() //获取容器中元素个数
public boolean isEmpty() //判断容器是否为空
public void clear() //清空元素

Map 接口没有提供 iterator() 方法,其子接口 Entry 提供了 iterator() 方法,并且提供了获取键、值的方法,如下:

//Map.Entry接口主要方法
public Iterator<E> iterator() //获取迭代器
public Object getKey() //获取键
public Object getValue() //获取值
 
//调用案例
Iterator(Entry) iter=map.entrySet().iterator();
while(iter.hasNext()){
    Entry entry=iter.next();
    int key=(Integer)entry.getKey();
    int val=(Integer)entry.getValue();
}
其它容器常用方法

Arrays

public static int binarySearch(Object[] a, Object key) //二分查找(a已排序)
public static boolean equals(Object[] a, Object[] a2) //判断两数组是否完全一致
public static void fill(Object[] a, Object val) //在a中所有位置填充val
public static void fill(Object[] a, int fromIndex, int toIndex, Object val) //在[fromIndex,toIndex)中填充元素val
public static String toString(Object[] a) //将数组a转换为字符串,如"[1, 2, 3]"
public static void sort(Object[] a) //改进的快速排序(升序)
public static void sort(Object[] a, int fromIndex, int toIndex) //对[fromIndex,toIndex)中的元素排序(升序)
public static <T> void sort(T[] a, Comparator<? super T> c) //自定义比较器排序

排序案例:升序排序直接调用 sort() ,降序排序需要实现比较器(Comparator )接口

import java.util.Arrays;
import java.util.Comparator;
 
public class Sort{
	static Integer[] a= {5,8,4,2,9,3,1,6,7};
	static String[] s= {"Tom","John","Marry","Katty","Jerry"};
 
	public static void main(String[] args) {
		Arrays.sort(a); //1 2 3 4 5 6 7 8 9 
		Arrays.sort(s); //Jerry John Katty Marry Tom 
 
		Arrays.sort(a,new Comparator<Integer>() {
			public int compare(Integer o1, Integer o2) {
				return o2-o1;
			}				
		}); //9 8 7 6 5 4 3 2 1 
 
		Arrays.sort(s,new Comparator<String>() {
			public int compare(String o1, String o2) {
				return o2.compareTo(o1);
			}			
		}); //Tom Marry Katty John Jerry 
	}
}

优先队列(PriorityQueue)
首先import java.util.PriorityQueue

  • PriorityQueue中放置的元素必须要能够比较大小 (只有实现了 Comparable 和 Comparator 接口的类才能比较大小),不能插入无法比较大小的对象,否则会抛出 ClassCastException 异常
  • 不能插入 null 对象,否则会抛出 NullPointerException 异常
  • 没有容量限制,可以插入任意多个元素,其内部可以自动扩容
  • 插入和删除元素的时间复杂度均为 O(log2N)
  • PriorityQueue底层使用了堆数据结构
    常用接口
    Java中的优先队列(PriorityQueue)是Java集合框架的一部分,它实现了Queue接口,并且使用堆数据结构来维护元素的优先级顺序。以下是一些常用的Java优先队列接口:
  1. PriorityQueue():创建一个空的优先队列。
PriorityQueue<Integer> pq = new PriorityQueue<>();
  1. PriorityQueue(Comparator<? super E> comparator):创建一个空的优先队列,并使用指定的比较器对元素进行排序。
Comparator<Integer> reverseOrder = Collections.reverseOrder();
PriorityQueue<Integer> pq = new PriorityQueue<>(reverseOrder);
  1. add(E e):将指定的元素插入此优先队列。
pq.add(5);
  1. offer(E e):将指定的元素插入此优先队列(如果立即可行且不会违反容量限制),成功时返回true。
boolean success = pq.offer(10);
  1. poll():检索并删除此队列的头,如果此队列为空,则返回null。
Integer head = pq.poll();
  1. peek():检索但不删除此队列的头,如果此队列为空,则返回null。
Integer head = pq.peek();
  1. remove(Object o):从队列中移除指定元素的单个实例(如果存在)。
boolean removed = pq.remove(5);
  1. contains(Object o):如果此队列包含指定的元素,则返回true。
boolean contains = pq.contains(10);
  1. size():返回队列中的元素数量。
int size = pq.size();
  1. isEmpty():如果队列不包含任何元素,则返回true。
boolean isEmpty = pq.isEmpty();
  1. clear():从队列中移除所有元素。
pq.clear();

这些接口为Java优先队列提供了基本的操作,使得你可以方便地进行元素的添加、删除、查看以及队列的状态查询等操作。注意,由于优先队列是基于堆实现的,所以元素在队列中的位置可能会随着元素的插入和删除而改变,以满足优先级的顺序。

Collections
  1. Collections类对Collection提供的方法
public static Object max(Collection coll) //获取最大值
public static Object min(Collection coll) //获取最小值
  1. Collections类对List对象提供的方法
public static int binarySearch(List list, Object key) //查找元素
public static void copy(List dest, List src) //将src复制给dest
public static void fill(List list, Object obj) //在list中填充obj
public static void reverse(List list) //列表元素倒置
public static void sort(List list) //升序排序
public static <T> void sort(List<T> list, Comparator<? super T> c) //自定义比较器排序
  1. Collections类提供的集合同步处理方法
public static Collection synchronizedCollection(Collection c) //Collection对象同步
public static List  synchronizedList(List list) //List对象同步
public static Set  synchronizedSet(Set s) //Set对象同步
public static Map  synchronizedMap(Map m) //Map对象同步

常用数据结构

单链表
双链表
队列
单调栈
单调队列
KMP
Trie
并查集
哈希表
二叉树
树状数组
线段树
平衡二叉树

常用算法

二分
排序
高精度(java不太需要)
前缀和
差分
双指针
位运算
离散化
区间合并
深度优先搜索
广度优先搜索
拓扑排序
最短路算法
最小生成树
匈牙利算法
最近公共祖先
数学知识
动态规划算法
贪心算法

标签:元素,javaB,int,void,Object,蓝桥,static,组备赛,public
From: https://www.cnblogs.com/caixuf/p/18111474

相关文章

  • 【蓝桥杯】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母
    【问题描述】小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大写字母,小明将它转换成它在26个英文字母中序号,即A→1,B→2,...Z→26。这样一个字符串就能被转化成一个数字序列:比如ABCXYZ→123242526。现在给定一个转换后的数字序列,小明想还原出原本的......
  • 蓝桥杯备考随手记: 字符串转换
    在Java中,字符串转换是指将一个数据类型的变量转换成字符串类型的操作。字符串转换可以通过以下几种方式实现:使用String类的valueOf()方法:该方法可以将任意数据类型转换成字符串类型。例如:intnum=10;Stringstr=String.valueOf(num);该方法还可以用于将字符数组转换......
  • smu2024蓝桥杯训练1
    A[语言月赛202401]装满葡萄汁的酒杯查看代码voidsolve(){intn;cin>>n;if(n<=100)cout<<100;elseif(n<=150)cout<<150;elseif(n<=300)cout<<300;elseif(n<=400)cout<<400;e......
  • 蓝桥杯练习笔记(十六)
    蓝桥杯练习笔记(十六)一、输入示例:312111347453这是用到了m叉树的结论:对于某个m叉树的一个节点n,假如其有完整子树,则其左子节点l为l=(n-1)m+2,右子节点r为r=mn+1。基于此我们可以快速判断这个数在某些节点处的具体情况。比如是否是满叶子等等。蓝桥官网题解:......
  • 蓝桥杯T5合根植物——并查集模板题
    5.合根植物-蓝桥云课(lanqiao.cn) #include<bits/stdc++.h>usingnamespacestd;intm,n,pre[1000000];set<int>s;intfind(intx){if(pre[x]==x)returnx;returnfind(pre[x]);}intmain(){//请在此输入您的代码cin>>m>>......
  • 蓝桥杯备赛指南
    蓝桥杯备赛指南大学C组枚举fromenumimportEnumclassWeekday(Enum):monday=1tuesday=2wednesday=3thirsday=4friday=5saturday=6sunday=7print(Weekday.wednesday)#Weekday.wednesdayprint(type(Wee......
  • 蓝桥杯真题代码记录(松散子序列
    目录1.题目:2.我的代码:小结:1.题目:给定一个仅含小写字母的字符串s,假设s的一个子序列t的第i个字符对应了原字符串中的第pi个字符。我们定义s的一个松散子序列为:对于i>1总是有pi−pi−1≥2。设一个子序列的价值为其包含的每个字符的价值之和......
  • 蓝桥杯——省赛题
    目录题目一:日期统计: 我的思路——错误代码: 示例代码一思考:知识点总结:1.setuniqueSet;2..size()3.日期匹配示例方法二思考:题目二:01串的熵我的思路:错误总结:题目三:冶炼金属我的思路:题目一:日期统计: 我的思路——错误代码:    蠢方法:不断使用for循环......
  • 蓝桥杯单片机速成2-动态数码管数码管显示
    一、原理图段选给1是选中,该数码管是共阳极的数码管,位选输入0才会电亮一位二、代码分析/*************本地常量声明**************/u8codet_display[]={//标准字库//0123456789ABC......
  • P8649 [蓝桥杯 2017 省 B] k 倍区间
    importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);//读取输入的整数n和kintn=sc.nextInt();//数组长度intk=sc.nextInt();//取模的值......