文章目录
- 1. 去除字符串中的其他符号,只保留数字、字母
- 2. 获取字符串中的每一个字符
- 3. int[ ] 转成对应的 list 列表(这样就可以进行索引了)
- 4. 列表 list 转成 int[ ] :直接循环遍历即可
- 5. 删除数组 array 中所有的 null 项
- 6. 数字的字符串类型转 int 类型
- 7. 判断两个字符串相等的方式
- 8.
- 9. Linkedlist 和 Arraylist 的不同
- 10. 初始化 list 的五种方法
- 11.获取变量类型
- 12. 将 Character 型转换为 int 型
- 13. 创建一个只包含 26个小写字母的 Hashmap
- 14. Hashmap 一个key 中存入多个 value
- 15. Hashmap 和 map 的区别
- 16. HashMap / TreeMap / LinkedHashMap 的区别
- 17. java基本数据类型和封装类的区别
- 18. java 的按值调用和按引用调用
1. 去除字符串中的其他符号,只保留数字、字母
str = str.replaceAll("[^a-z^A-Z^0-9]", "");
2. 获取字符串中的每一个字符
String x = "leetcode";
for (int i = 0; i < x.length() ; i++) {
System.out.println(x.charAt(i));
}
3. int[ ] 转成对应的 list 列表(这样就可以进行索引了)
int[]nums = new int [5];
List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toList());
4. 列表 list 转成 int[ ] :直接循环遍历即可
for (int i = 0; i < list.size() ; i++) {
nums[i] = list.get(i);
}
5. 删除数组 array 中所有的 null 项
while (arr.remove(null));
6. 数字的字符串类型转 int 类型
ArrayList<String> arr = new ArrayList<>();
arr.add("1");
System.out.println(Integer.parseInt(arr.get(0)));
7. 判断两个字符串相等的方式
String x = "leetcode";
String y = "dsfag";
System.out.println(x.equals(y));
System.out.println(Objects.equals(x,y));
8.
9. Linkedlist 和 Arraylist 的不同
LinkedeList和ArrayList的区别
1、数据结构不同
ArrayList是Array(动态数组)的数据结构,LinkedList是Link(链表)的数据结构。
2、效率不同
当随机访问List(get和set操作)时,ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。
当对数据进行增加和删除的操作(add和remove操作)时,LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。
3、自由性不同
ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。
4、主要控件开销不同
ArrayList主要控件开销在于需要在lList列表预留一定空间;而LinkList主要控件开销在于需要存储结点信息以及结点指针信息。
10. 初始化 list 的五种方法
int[] intArray = new int[]{1, 2, 3};
Integer[] integerArray = new Integer[]{1, 2, 3};
List<int[] > intArrayList = Arrays.asList(intArray);
List<Integer> integerList = Arrays.asList(integerArray);
List<Integer> integerList2 = Arrays.asList(1, 2, 3);
11.获取变量类型
ArrayList<Object> arr = new ArrayList<>();
arr.get(0).getClass().toString()
12. 将 Character 型转换为 int 型
char i = '1';
int x = Integer.parseInt(i+"");
System.out.println(x);
这里加 " "
的原因,是 Integer.parseInt()
只能转换字符串类型,所以要把这个字符转化成字符串的形式
13. 创建一个只包含 26个小写字母的 Hashmap
HashMap <Object,Integer> map = new HashMap<>();
char start = 'a';
char end = 'z';
int value = 0;
while(start<=end){
map.put(start,value);
start++;
value++;
}
14. Hashmap 一个key 中存入多个 value
15. Hashmap 和 map 的区别
- map 是一个接口
- hashmap 是 map 接口的实现类
16. HashMap / TreeMap / LinkedHashMap 的区别
- Hashmap 是散列表
- Hashmap 最多允许一个 key 为 null,多个 value 为null
- Hashmap 遍历的时候是完全随机的
- LinkedHashmap 存储的时候是按照插入的顺序排列的,查找起来比较方便
- 虽然 Hashmap 的查找速度快一些,但是当 HashMap的容量很大,实际数据很少时使用 Linkedhashmap , 因为HashMap的遍历速度和它的容量有关,而LinkedHashMap只跟实际数据量有关。
- TreeMap实现SortMap接口,能够将它保存的记录按键排序,默认是按键的升序排列,也可以指定排序的比较器,遍历TreeMap的时候,得到的记录是按照键排过序的。
17. java基本数据类型和封装类的区别
- 基本数据类型:
byte / short / int / long / boolean / float / double / char
- 封装类:
Byte / Short / Integer / Long / Boolean / Float / Double / Character
区别:
-
基本数据类型是值传递,封装类是引用传递
-
基本数据类型是存放在栈中的,而封装类是存放于堆中的
-
基本数据类型初始值如:
int=0
,而封装类Integer=null
-
集合中添加的元素一定是封装类引用数据类型
-
声明基本数据类型不需要实例化可直接赋值,而封装类必须申请一个存储空间实例化才可赋值。
-
对于基本数据类型,只能进行加减乘除的基本运算,但是封装类却可以像其他方法一样通过创建对象来调用方法,例如
Interger.parseInt()
18. java 的按值调用和按引用调用
按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。 它用来描述各种程序设计语言(不只是 Java)中方法参数传递方式。