0
点赞
收藏
分享

微信扫一扫

牛客网刷题常见代码问题汇总

捌柒陆壹 2022-04-04 阅读 46
java

leetcode刷题经常出现的问题

  1. 数组初始化,集合泛型初始化
    静态初始化int[] arr={100,200,300};
    动态初始化 int[] arr=new int[5];//每个元素默认都是0
    String[] names=new String[6];//每个都是null

  2. 遍历数组和遍历集合的区别
    增强型for循环

int[] arr=new int[10];
for(int i:arr){
    System.out.print(i);
}
ArrayList<Obj> arr
for(Obj o:arr){
}

对于数组,使用的是普通for循环
但是对于集合,使用的是迭代器Iterator

Iterator i=list.iterator();
while(i.hasNext()){
    Object obj=i.next();
}

3 . 数组和集合的互相转化和排序方法
数组可以转化成List
但是不能转化成Set,而且转换的不能add元素

 String[] array = {"one","two","three","four"};
List<String> list = Arrays.asList(array);
// list.add("k");报错
System.out.println(list);

集合转化成数组使用toArray
toArray返回的Object[] 所以可以参数中加上一个新数组作为类型

String[] s=prices.keySet().toArray(new String[prices.size()]);
        for(String k:s){
            System.out.println(k);
        }

排序的方式
对于数组使用Arrays的静态方法Arrays.sort(arr)
如果是集合,就使用Collections.sort()的方法,里面只能放List

  1. 运算符的优先级
    !弹幕运算符优先级高于==
    所以判断的时候如果有必要需要用最高优先级的()
if(!(a==0)) 的意思是a!=0
if(!a==0) 会报错,因为java中a是整数,不能运行!a
if( a||b&& c||d) 会优先计算b&&c 变成了if(a||d||c)
if(a&&b || c&&d) 这样才是合理的
  1. 字符,字符串,数字之间的转换
    字符和字符串的转换
    使用包装类的静态方法
//如果是包装类可以用toString,但是char基本类型不行,需要用静态方法
	   Character c='U';
       String s=c.toString();  

       char c2='V';
       String s2=Character.toString(c2);

//方法2
String s=c+"";

//方法3 String的唯一一个静态方法
String.valueOf(c)

String转成char
s.charAt() 或者s.toCharArray()
字符串和数字之间
String.valueOf(678) 可以转字符串
Integer.valueOf(”12“) 返回Integer
Integer.parseInt(“12”) int

举报

相关推荐

0 条评论