标准输入输出模板:援引自CSDN墨水博主 切记,需要用到带数字的字符串别用nextString 用nextLine
import java.io.*;
import java.lang.reflect.Array;
import java.util.Arrays;
public class Main {
public static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
public static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
public static StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
public static PrintWriter count = new PrintWriter((new OutputStreamWriter(System.out)));
public static void main(String[] args) throws Exception {
}
public static int nextInt() throws Exception{
cin.nextToken();
return (int) cin.nval;
}
public static String nextLine() throws Exception{
String p = "";
p = in.readLine();
return p;
}
public static long nextLong() throws Exception{
cin.nextToken();
return (long) cin.nval;
}
public static double nextDouble() throws Exception{
cin.nextToken();
return (double) cin.nval;
}
public static String nextString() throws Exception{
cin.nextToken();
return cin.sval;
}
public static void closeAll() throws Exception{
count.close();
in.close();
out.close();
}
}
蓝桥杯采用OI赛制,十个样例,通过一个给10分
public Main class不必多说
java集合类复习:援引自CSDN博主Mymel晗 https://blog.csdn.net/m0_51338272/article/details/123546030
有以下几个常用集合
- ArrayList——List集合,底层基于数组实现
- LinkedList——List集合,底层基于链表实现
- HashSet——Set集合,底层使用哈希表实现
- TreeSet——Set集合,底层使用二叉树实现
- HashMap——Map集合,用于存储键值对
key-value
其中ArrayList的底层是Object[]数组,优势在于可以随机访问
而LinkedList的底层是链表,访问某个元素的效率比ArrayList低,但优势在于需要大量增删改的时候速度很快。
添加元素:void add(E element)
在指定位置插入元素:void add(int index, E element),指定位置以及后面的所有元素向后移动一个位置。
返回集合的长度:int size()
向List中添加另一个集合中的全部元素:
boolean addAll(Collection<? extends E> c) 默认从后面添加
在指定位置插入另一个集合中的全部元素:
boolean addAll(int index, Collection<? extends E> c)
返回List集合中指定索引位置的元素:
E get(int index)
返回list集合中第一次出现o对象的索引位置
int indexOf(Object o)
如果list集合中没有o对象,返回-1
删除指定索引的元素:E remove(int index)
将索引为index位置的元素更改为element元素:E set(int index, E element)
Set集合 用于查重
Set接口下的两个最为重要的实现类分别是HashSet
与TreeSet
,HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。底层数据结构是哈希表;TreeSet底层是红黑树,TreeSet可以确保集合元素处于排序状态。
Set<Double> set = new TreeSet<>();
Set<Double> set = new HashSet<>();
添加元素:boolean add(E e),boolean addAll(Collection extends E> c)
删除元素:boolean remove(Object o)
清空集合:void clear()
删除在指定集合中出现的所有元素(差集):
boolean removeAll(Collection> c)
返回集合长度:int size()
判断集合是否为空:boolean isEmpty()
判断集合是否包含某个元素或者另一个集合:
boolean contains(Object o)
boolean containsAll(Collection> c)