七日阅书3 字符串数组集合泛型《Java程序设计与计算思维》
Posted 小雨青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七日阅书3 字符串数组集合泛型《Java程序设计与计算思维》相关的知识,希望对你有一定的参考价值。
目录
一、前情提要
【七日阅书】1 计算思维和Java特性《Java程序设计与计算思维》_Code Metaverse-CSDN博客
【七日阅书】2 Java的数据类型和流程控制《Java程序设计与计算思维》_Code Metaverse-CSDN博客
二、字符和字符串
上次说的是基本类型,但是基本类型不好操作,官方封装了一些类型,被称为类类型,他们可以使用一些方法,实现常用的操作。
字符串分为两种,他们是并列的,不是继承关系,这点要注意。
- Sting 字符串
- StringBuffer 字符串缓冲区
其中,字符串缓冲区更适合频繁的字符串变更操作。
其实常见的操作都可以通过IDE提示出来,根据直觉去使用即可,下面列出实际代码和常用的方法。
//字符
char charDemo1 = 'x';
Character charDemo2 = new Character('x');
//字符串
String stringDemo1 = "test";
String stringDemo2 = new String("test");
stringDemo2.length(); //获取长度
stringDemo2.concat(" user"); //拼接字符串
stringDemo2.toLowerCase(); //转小写
stringDemo2.compareTo(stringDemo1); //对比
stringDemo2.substring(1,3); //截取
//字符串缓冲区
StringBuffer stringDemo3 = new StringBuffer("test");
stringDemo3.append(" user"); //追加
stringDemo3.insert(2,"u"); //插入
stringDemo3.delete(2,3); //删除
stringDemo3.length(); //获取长度
stringDemo3.substring(0,2); //截取
三、数组
数组的特点
- 所有元素的类型必须一致
- 有序写入
- 必须指定初始大小
//数组,必须指定大小
String[] arrDemo1 = new String[3];
arrDemo1[0] = "str1";
arrDemo1[1] = "str1"; //值可以重复
arrDemo1[2] = "str1";
String[] arrDemo2 = arrDemo1.clone(); //复制 克隆
Arrays.fill(arrDemo2,"test2"); //Array类的使用
UserBo[] arrDemo3 = new UserBo[5]; //对象数组,不是只能用基本类型
java.util.Arrays类可以使用,提供一些便捷的数组操作。
数组不是只能调用基本类型的,自定义的类也是可以的。
四、泛型和集合
前面的字符串和数组都是毕竟基本的,数组的限制多一些,字符串的操作并不多。
泛型、集合,是本次读书的重点内容,在实际工作中的用的地方也是最多的。
1.泛型
如何理解泛型?泛型可以是任意一种数据类型。泛型可以让方法接收不同数据类型的参数,
//泛型可以接收任何参数
Gengric<String> aDemo1 =new Gengric<String>();
aDemo1.setDemo1("string");
//不只是基本数据类型
Gengric<UserBo> aDemo2 =new Gengric<UserBo>();
UserBo userBo = new UserBo();
aDemo2.setDemo1(userBo);
2.集合
集合是非常重要的概念。
1.单向链表 LinkedList
特点
- 所有节点都知道下一个节点的位置,不知道上一个
- 不需要指定长度
LinkedList<String> aDemo3 = new LinkedList<>();
aDemo3.add("str1"); //插入
aDemo3.get(0); //获取
aDemo3.addFirst("str2"); //头部添加
aDemo3.addLast("str3"); //尾部添加
aDemo3.size(); //长度
2.动态数组 ArrayList
特点
- 可以存放不同对象
- 不需要指定长度
ArrayList aDemo4 = new ArrayList<>();
aDemo4.add(userBo);
aDemo4.add("str5");
aDemo4.add(100); //可以加入不同数据类型
3.HashSet
特点
- 排列顺序和加入不同
- 元素不能重复
- 数据类型必须一致
HashSet<Integer> aDemo5 = new HashSet<>();
aDemo5.add(1);
aDemo5.add(2);
4.TreeSet
TreeSet是以树为数据结构存储数据的。
特点
- 元素不能重复
- 插入即排序
TreeSet<Integer> aDemo6 = new TreeSet<>();
aDemo6.add(20);
aDemo6.add(10);
aDemo6.add(50);
5.HashMap
特点
- key不能重复
- 不会维持插入顺序
HashMap<Integer,String> aDemo7 = new HashMap<>();
aDemo7.put(5,"str8");
aDemo7.put(1,"str9");
aDemo7.put(3,"str10");
6.TreeMap
特点
- key不能重复
- 插入即排序
TreeMap<Integer,String> aDemo8 = new TreeMap<>();
aDemo8.put(5,"str8");
aDemo8.put(1,"str9");
aDemo8.put(3,"str10");
五、总结
不同的数据类型,对数据的处理方式不同,占用的系统资源也不同。
这部分必须熟练掌握使用,以便在合适的场景使用合适的数据结构。
六、源码地址
以上是关于七日阅书3 字符串数组集合泛型《Java程序设计与计算思维》的主要内容,如果未能解决你的问题,请参考以下文章
七日阅书7 网络通信&全书总评《Java程序设计与计算思维》
七日阅书5 抽象和接口异常处理《Java程序设计与计算思维》
七日阅书1 计算思维和Java特性《Java程序设计与计算思维》