蓝桥杯备赛须知自用(1)

文章介绍了Java中的标准输入输出模板,强调了在处理带数字的字符串时使用nextLine而非nextString。同时,详细讲解了Java集合类,如ArrayList、LinkedList、HashSet、TreeSet和HashMap的底层实现和主要操作,包括添加、删除、修改等方法,并提及蓝桥杯比赛的样例要求。
摘要由CSDN通过智能技术生成

标准输入输出模板:援引自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

有以下几个常用集合

  1. ArrayList——List集合,底层基于数组实现
  2. LinkedList——List集合,底层基于链表实现
  3. HashSet——Set集合,底层使用哈希表实现
  4. TreeSet——Set集合,底层使用二叉树实现
  5. 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接口下的两个最为重要的实现类分别是HashSetTreeSet,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)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值