七日阅书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");

五、总结

不同的数据类型,对数据的处理方式不同,占用的系统资源也不同。

这部分必须熟练掌握使用,以便在合适的场景使用合适的数据结构。

六、源码地址

小雨青年 / Java Demo · CODE CHINA (gitcode.net)

以上是关于七日阅书3 字符串数组集合泛型《Java程序设计与计算思维》的主要内容,如果未能解决你的问题,请参考以下文章

七日阅书7 网络通信&全书总评《Java程序设计与计算思维》

七日阅书5 抽象和接口异常处理《Java程序设计与计算思维》

七日阅书6 多线程和文件流《Java程序设计与计算思维》

七日阅书1 计算思维和Java特性《Java程序设计与计算思维》

七日阅书2 Java的数据类型和流程控制《Java程序设计与计算思维》

七日阅书2 Java的数据类型和流程控制《Java程序设计与计算思维》