Java中复合数据类型怎么用

您所在的位置:网站首页 java复合数据类型包括哪些 Java中复合数据类型怎么用

Java中复合数据类型怎么用

2023-07-08 20:34| 来源: 网络整理| 查看: 265

Java中复合数据类型怎么用 发布时间:2021-10-27 11:07:09 来源:亿速云 阅读:144 作者:小新 栏目:开发技术

这篇文章主要为大家展示了“Java中复合数据类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中复合数据类型怎么用”这篇文章吧。

1、Java字符串

在 Java 中字符串被作为 String 类型的对象处理。 String 类位于 java.lang 包中,默认情况下该包自动导入。

String对象创建后不会被修改,当我们修改某个字符串对象实际上是将原引用指向了新创建的内存空间。并且相同的字符串常量Java不会分配两个内存空间,而是将两个引用指向相同的空间。

public class MyString {     public static void main(String[] args) {         String s1="字符串";         String s2="字符串";         String s3=s1;         System.out.println(s1==s2);     // s1、s2字符串内容相同,指向相同的内存空间,输出:true         System.out.println(s1==s3);     // 修改之前s1与s3相同,输出:true         s1="修改字符串";         System.out.println(s1==s3);     // 修改之后s1指向新的内存空间,与s3不同,输出:false     } }

String中常用的方法:

str.length()    //返回当前字符串的长度 str.indexOf(int ch)    //查找ch字符在该字符串中第一次出现的位置,若无返回-1 str.indexOf(subStr)    //查找str子字符串在该字符串中第一次出现的位罝 str.lastIndexOf(ch)    //查找ch字符在该字符串中最后一次出现的位置 str.lastlndexOf(subStr)查找St子字符串在该字符串中最后一次出现的位置 str.substring(beginlndex)    //获取从beginlndex位置幵始到结朿的子字符串 str.substring(beginlndex, endlndex)    //获取从beginlndex位置幵始到endlndex位M的子字符串 str.trim()        //返回去除了前后空格的字符串 str.equals(obj)        //将该字符串与指定对象比较,返回true或false str.toLowerCase()        //将字符串转换为小写 str.toUpperCase()        //将字符串转换为大写 str.charAt(int index)    //获取字符串中指定位置的字符 str.setCharAt(i,c)    //设置某个位置的字符串 str.split(String regex, int limit)        //将字符串分割为子字符串,返回字符串数组 str.concat(str2)        //将str2拼接到末尾 str.getBytes()        /将该字符串转换为byte数组 str.toCharArray()        //转化为字符数组

如果需要使用经常修改的字符串,可以用StringBuilder类来保存,可以通过append、replace等方法对字符串进行修改,修改之后仍然指向同一块内存地址

public class MyString {     public static void main(String[] args) {         StringBuilder s4=new StringBuilder("初始字符串");         StringBuilder s5=s4;         s4.replace(0,10,"修改后的字符串");         System.out.println(s4);         System.out.println(s4==s5);     // 修改后仍然指向同一块内存,因此输出:true     } }

通过String.valueOf()可以将其他类型数据转化为字符串。

char[] arr={'a', 'd', 'e'}; String s=String.valueOf(arr);2、Java中的包装类

Java中的基本数据类型如int、double等都不具有对象的特性,为了像其他对象一样拥有自己的方法,Java为每个基本数据类型提供了包装类,像对象那样来操作基本数据类型。包装类的基本方法用于实现类型之间的相互转换。

Java包装类可以自动装箱/拆箱,即通过=运算符自动完成基本类型和包装类之间的类型转换。

Java中复合数据类型怎么用

// 定义int类型变量,值为86 int score1 = 86;        // 使用int创建Integer包装类对象,手动装箱 Integer score2=new Integer(score1);                   Integer score2=score1;    //自动装箱       // 将Integer包装类转换为double类型 double score3=score2.doubleValue();         // 将Integer包装类转换为float类型 float score4=score2.floatValue();         // 将Integer包装类转换为int类型,手动拆箱 int score5 =score2.intValue();                 int score5 = score2        // 自动拆箱 // 将字符串转为int int score6 = Integer.parseInt("666");

基本类型与字符串之间的互相转换:

Java中复合数据类型怎么用 Java中复合数据类型怎么用

通过Integer.MAX_VALUE可以获得最大整数值

使用 java.util 包中的 Date 类可以创建时间对象,使用java.text 包中的 SimpleDateFormat 类可以将时间转化为所需格式的字符串,其中 “yyyy-MM-dd HH:mm:ss” 为预定义字符串, yyyy 表示四位年, MM 表示两位月份, dd 表示两位日期, HH 表示小时(使用24小时制), mm 表示分钟, ss 表示秒,这样就指定了转换的目标格式,最后调用 format() 方法将时间对象Date转换为指定的格式的字符串,反之parse()方法可以将普通字符串转化为Date对象。

Java中复合数据类型怎么用

java.util.Calendar 类可以更加方便地进行时间的处理,通过调用 getInstance() 静态方法获取一个 Calendar 对象,默认代表当前时间,可以通过c.getTime()将其转化为Date对象。Calendar对象的更多方法如下

Java中复合数据类型怎么用

Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

int minNum=Math.min(2, 3);    //获取最小值 int maxNum=Math.max(2, 3);    //获取最大值   long round=Math.round(3.1415);      //四舍五入 double floor=Math.floor(3.1415);    //向下取整 double ceil=Math.ceil(3.1415);      //向上取整 double random=Math.random();        //取[0,1)之间的随机数3、Java容器

在各种基本数据类型的基础上,Java使用集合类当作容器来储存具有相同属性的对象。通过集合类组织数据可以实现对特定数据的快速插入、删除与查询操作。而且与数组相比,集合的长度灵活可变,而且查找方式也不只有下标一种。Java中常见的集合类分为两个接口Collection和Map,其中Collection有三个子接口链表List、队列Queue、集Set,List常见的实现类为数组序列ArrayList,Queue实现类为LinkedList称为链表,Set实现类为哈希集。Collection中按照一个一个对象来存储数据,Map中按照键值对来存储数据。

Collection接口规定了ArrayList、Set等具体实现类的接口方法,例如它们都使用add()方法来添加元素,因此一些方法名在各个类实现中是通用的。

Java中复合数据类型怎么用

ArrayList

ArrayList是类似于数组的容器,将对象储存进ArrayList之中便于组织和管理。通过add()方法可以将单个对象插入列表,addAll()可以将多个对象组成的子列表插入父列表中,插入时可以指定插入的位置,可以通过Arrays.asList()将数组转化为列表,通过toArray()方法可以将列表转为Object[]数组,可以向其中传入泛型参数从而返回特定类型的数组。

需要注意的是通过Arrays.asList()转化成的List长度是固定的,不能进行add()操作,会报错;我们可以将其作为子列表添加到一个新的List列表,然后再进行插入操作。

例如向列表courseList中插入Course对象:

public void addCourse(){     Course c1=new Course(1,"数据结构");     Course c2=new Course(2,"操作系统");     Course[] cArr={new Course(3,"组成原理"),new Course(4,"计算机网络")};       courseList.add(c1);                         // 向数组列表中添加对象     courseList.add(0,c2);                 // 向指定位置添加对象     courseList.addAll(Arrays.asList(cArr));     // 向列表中添加子列表,前加数字表示插入位置     Course tmp=(Course)courseList.get(0);       // 从列表中取出对象     Course[] courseArr=courseList.toArray(new Course[courseList.size()]);    // 转换为特定类型的数组 }

特别地,int[]与List之间无法直接使用asList()/toArray()方法进行互相转换,可以经过如下流操作,或者遍历int[]逐个添加到List

int[] nums=new int[]{3,1,5,8}; //arr转list List numList = Arrays.stream(nums).boxed().collect(Collectors.toList()); //list转arr int[] arr = numList.stream().mapToInt(Integer::valueOf).toArray();

通过size()方法可以获取列表长度,通过get()方法可以获取指定位置的对象,进而通过for循环遍历每个对象,也可以使用for each的方式遍历每个元素。还可以通过迭代器实现对每个对象的访问。值得注意的是,每个对象在列表中都是以Object对象的方式储存的,因此在取出之后需要通过强制类型转换为原来的对象类型,例如(Course)转为Course类的对象

public void showCourse(){         int listLength=courseList.size();           // 获取列表长度         for (int i=0;io.id){          // 如果大于o返回1             return 1;         }else if (this.ido2.id){          // 如果大于o返回1             return 1;         }else if (o1.id


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3