力扣刷题必备(java版)

力扣刷题必备(java版)

一、java的输入输出

1.输入常用函数及技巧
  • 声明Scanner类的对象,使用Scanner类的对象实现输入操作

    Scanner input = new Scanner(System.in);

  • 常用输入函数

    1.读入一整行,不用管空格
    String a = input.nextLine();
    2.从本行开始读,遇到空格时停止
    String b = input.next();
    3.读整数
    int c = input.nextInt();
    4.读浮点数
    double d = input.nextDouble();
    5.读浮点数
    float f = input.nextFloat();
    
    6.检查输入中是否还有其他单词
    boolean hasNext()
    7.检查输入中是否还有下一行
    boolean hasNextLine()
    8.是否还有整数或浮点数字符
    boolean hasNextInt()
    boolean hasNextDouble()
    
2.输出常用函数
System.out.printf("%.2f",result)
f表示浮点数,2表示两位小数

二、类型转换

1.int -> string
1.  String.valueOf(int number)
2.  Integer.toString(Integer number)
2.string -> int
String s="100";
Integer i =new Integer(s);
int x=i.intValue();
System.out.println(x);
3.ArrayList -> Array
String[] array = (String[])list.toArray(new String[size]); 
4.String 转换成 char数组
s.toCharArray();
5.char数组转换为String
String s1=new String(char1);

三、字符串

字符串常用函数
  1. 字符串的大小 ,len=str.length();

  2. 提取字符串中的某一个下标字符,str.charAt(6)

  3. 查找字符出现的位置,str.indexOf(‘o’)

  4. 找子串,str.substring(4,5)

  5. 反转

    String string="runoob"; 
    String reverse = new StringBuffer(string).reverse().toString();
    
  6. 字符串判断是否相等, str1.equals(str2),通过判断内容相等;

    str1==str2,通过判断地址相等

  7. 字符分割

    
    String str="My name is Benjamin.";
    String [] words=str.split(" ");//正则表达式 按照空格进行分割
    
字符拼接

StringBuilder和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

			//字符串转为字符流
			String s="a";
			StringBuilder sb = new StringBuilder(s);//a
		    //增加
	        sb.append("b");//ab
	        //插入
	        sb.insert(2, "cd");//abcd
	        //删除
	        sb.delete(1,2);//acd
	        //提取字串
	        String substring=sb.substring(0,1);//
			//删除最后的元素
	        int len=sb.length();
	        sb.delete(len-1,len);//ac
	        //字符流再转为字符串
	        String ss=sb.toString();

四、数组

Array

1.初始化

int [] arr=new int[100];
int [] arr={1,2,3};

2.数组长度,int len=arr.length;

3.数组排序,Arrays.sort(array);//快排

4.判断两个数组是否相等,Arrays.equals(str1, str2);

ArrayList
  1. 通过索引来获取元素 list.get(i)

  2. 添加 list.add(int index,E element)如list.add(1, “Weibo”);

  3. 修改元素 list.set(2, “Wiki”); // 第一个参数为索引位置,第二个为要修改的值

  4. 删除最后一个元素 String a=list.remove(list.size()-1);

  5. 计算大小 list.size()

  6. 判断元素是否在 arraylist , list.contains();

  7. 截取部分 arraylist 的元素 subList(),如subList(1,3);

  8. 判断 arraylist 是否为空 isEmpty()

  9. 将 arraylist 转换为数组 toArray()

  10. 将 arraylist 转换为字符串 toString()

  11. 如果是char型的新建必须是:ArrayList list=new ArrayList();

  12. 按照字符排序,Collections.sort(list)

  13. 反转,Collections.reverse(list)

  14. 遍历

    for(String i : sites){
         System.out.println(i);
    }
    
  15. 二维的声明,List<List> list = new ArrayList<ArrayList>();

五、哈希表

1.HashMap
  • HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key,而Hashtable中不允许空的键或值。

  • HashMap实现了Map接口,Map接口对键值对进行映射。Map接口有两个基本的实现,HashMap和TreeMap。TreeMap保存了对象的排列次序,而HashMap则不能。

  • Map中不允许重复的键。

    常用方法:
    1. clear()

    clear() 的作用是清空HashMap。它是通过将所有的元素设为null来实现的。

    1. containsKey(key)

    containsKey() 的作用是判断HashMap是否包含key。

    1. containsValue(value)

    containsValue() 的作用是判断HashMap是否包含“值为value”的元素。

    1. entrySet()、values()、keySet()

    entrySet()的作用是返回“HashMap中所有Entry的集合”,它是一个集合。
    for (Map.Entry<String, String> entry : map.entrySet()) {

    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
    }
    
    1. get(key)

    get() 的作用是获取key对应的value

    1. getOrDefault(key, defaultValue)

    获取key对应的value,如果没有则是defaultValue

    1. put(key,value)

    put() 的作用是对外提供接口,让HashMap对象可以通过put()将“key-value”添加到HashMap中。

    1. putAll(map)

    putAll() 的作用是将"m"的全部元素都添加到HashMap中

    1. remove(key)

    remove() 的作用是删除“键为key”元素

    1. clone()

    克隆一个HashMap,并返回Object对象

    常用遍历代码:
    System.out.println("通过Map.keySet遍历key和value:");
        for (String key : map.keySet()) {
            System.out.println("key= "+ key + " and value= " + map.get(key));
        }
      
      
    System.out.println("通过Map.entrySet遍历key和value");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
        }
     
       
    System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
        for (String v : map.values()) {
            System.out.println("value= " + v);
        }
    
2.HashSet
  • HashSet实现了Set接口,它不允许集合中有重复的值

  • public boolean add(Object o)方法用来在Set中添加元素,当元素值重复时则会立即返回false,如果成功添加的话会返回true

    常用方法:
    1. s.add()

    在set集合中添加新元素

    1. s.clear()

    清空集合

    1. s.size()

    获取集合长度或大小

    1. s.contains(object)

    判断是否含有某个元素

    常用遍历代码:
    for (Integer integer : set) {
    			System.out.println(integer);
    		}
    		
    	
    Iterator<Integer> iterator=set.iterator();
    while(iterator.hasNext()){
    	Integer integer=iterator.next();
    	System.out.println(integer);
    }
    

六、栈与队列

栈stack

Java堆栈Stack类已经过时,Java官方推荐使用双端队列Deque替代Stack使用

双端队列(两端都可进出)
Deque deque = new LinkedList()
堆栈
Deque deque = new LinkedList()

img

队列
普通队列(一端进另一端出)
Queue queue = new LinkedList()

img

总结
  • 判断为空采用是stack.isEmpty();
  • Queue和Deque的方法相同,故可忽略stack和queue的区别,统一记后一种方法。
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值