韩顺平0基础学java——第24天

2024-06-16 23:12
文章标签 java 基础 24 顺平

本文主要是介绍韩顺平0基础学java——第24天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

p484-508

System类

常见方法

System.arrycopy(src,0,dest,1,2);

表示从scr的第0个位置拷贝2个,放到目标数组索引为1的地方。

BigInteger和BigDecimal类

保存大整数和高精度浮点数

BigInteger b = new BigInteger(“12332134546465464564645465489”);

在对BigInteger和BD进行加减乘除的时候,有特定的方法。不能直接+-*/

应该是字符串在模拟运算

加 b.add(b2)

减b.subtract(b2)

乘b.multiply(b2)

除b.divide(b2)有异常,可能会无限循环,解决方法:在调用divide方法时,指定精度即可。

b1.divide(b2,BigDecimal.ROUND_CEILING)意为:如有无限循环,那就保留分子的精度。

日期类

第一代日期类

package com.day24;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @author 马大可* @version 1.0*/
public class Date_ {public static void main(String[] args) throws ParseException {Date d1 = new Date();System.out.println(d1);SimpleDateFormat d2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");String f = d2.format(d1);System.out.println(f);//可以把一个格式化的字符串转成对应的类String s = "2024年04月16日 02:04:34 星期日";Date d3 = d2.parse(s);System.out.println(d2.format(d3));}
}
class AA{}

第二代日期类

Calendar是抽象的,构造器也锁了,用getInstance来创建

public static void main(String[] args) {Calendar c = Calendar.getInstance();System.out.println(c);System.out.println(c.get(Calendar.YEAR));
}

第三代日期类

记不住。。。根本记不住,这几集好困。。。





集合

集合的好处:

1.可以动态保存任意多个对象,使用比较方便。

2.提供了一些列方便的操作对象的方法:add,remove,set,get等

3.使用集合添加、删除元素的代码更简洁了。

集合的框架体系

1集合主要是两组:单列集合,双列集合

2collection接口主要有两个重要的子接口LIst Set,它们实现子类都是单列集合

3.Map接口的实现子类是双列集合,存放的K-V

Collection接口

Collection接口(父)常用方法

public class Jihe {public static void main(String[] args) {//向上转型?List list = new ArrayList();//添加元素list.add(10);list.add("aaa");list.add(true);//输出System.out.println(list);//是否包含某个元素?System.out.println(list.contains(10));//列表的大小System.out.println(list.size());ArrayList l2 = new ArrayList();l2.add("嘟嘟嘟");l2.add(555);//批量添加list.addAll(l2);System.out.println(list);//批量查找System.out.println(list.containsAll(l2));//批量删除list.removeAll(l2);}
}

迭代器遍历

Collection接口遍历元素的方式:迭代器

1.Iterator的对象就是迭代器,主要用于遍历Collection集合中的元素。

2.所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口(父接口)的对象,即可以返回一个迭代器。

3.Iterator的结构:

(指针?)

4.Iterator仅仅用于遍历集合,Iterator本身并不存放对象

Iterator接口的方法

package com.day24.jihe;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Itr {public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("马大可",23));col.add(new Book("马er可",423));col.add(new Book("马3",232));//现在想遍历这个col集合
        //1.先得到col对应的迭代器Iterator iterator = col.iterator();while(iterator.hasNext()){//判断是否还有数据,指针移动...Object ne = iterator.next();//返回下一个元素,类型是ObjectSystem.out.println(ne);}//快捷键:快速生成while循环:itit
        //显示所有快捷键的快捷键:ctrl+J//需要再次遍历,那就要重置迭代器!iterator = col.iterator();while (iterator.hasNext()) {Object next =  iterator.next();System.out.println(next);}}
}
class Book{private String name;private int price;public Book(String name, int price) {this.name = name;this.price = price;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", price=" + price +'}';}
}

 for增强循环

for(类名 局部变量:遍历对象){循环体}

public class zengqiangfor {public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("马大可",23));col.add(new Book("马er可",423));col.add(new Book("马3",232)); for(Object book:col){System.out.println(book);//}}
}

List接口(儿子接口)特有方法

1.List集合类中,元素有序(即添加顺序和取出顺序一致)、且可以重复。 

2.List集合中的每个元素都有其对应的顺序索引,即支持索引(从0开始)。

3.List容器中的元素都对应一个整数型的序号记载其在容器中的位置。可以根据序号存取容器中的元素。

4.JDK API中List接口的实现类有很多,常用的是ArrayList,LinkedList和Vector。前面那图要记住啊

5.方法真的很多(心儿都碎了): 

package com.day24.jihe;import java.util.ArrayList;
import java.util.Collection;
import java.util.List;public class zengqiangfor {public static void main(String[] args) {List list = new ArrayList();List list2 = new ArrayList();list.add("jack");list.add("rwak");list.add("asd");list.add("ddddd");list2.add("mdk");list2.add("mdk");System.out.println(list);//在索引为1的位置插入一个对象list.add(1,"插入一号位");System.out.println(list);//批量添加list.addAll(2,list2);System.out.println(list);//查找obj在list中首次出现的位置System.out.println(list.indexOf("mdk"));//查找最后出现的位置System.out.println(list.lastIndexOf("mdk"));//移除制定位置的的元素,并返回此元素list.remove(0);System.out.println(list);//设置指定index的元素为ele,相当于是替换.假如这个索引不存在,会抛出异常list.set(1,"马大可一号");System.out.println(list);//返回从formIndex到toIndex位置的子集合。List l2 = list.subList(0,2);//是[0,2),实际上返回0和1位置的元素System.out.println(l2);}
}

List的三种遍历方式

只要是实现了List接口的子类,它们的遍历方式是完全一样的,我可以

List list = new ArrayList();
List list1 = new LinkedList();
List list2 = new Vector();

1.迭代器

2.增强for

3.普通for

for (int g =0;g<list.size();g++){System.out.println(list.get(g));
}

很妙的一个排序

public static void sort(List list){int size = list.size();int t= 0;for (int i = 0; i < size; i++) {for(int j = 0;j<size-1-i;j++){//取出对象bookBook book1 = (Book)list.get(j);Book book2 = (Book)list.get(j+1);if(book1.price>book2.price){list.set(j,book2);list.set(j+1,book1);}}}
}

这篇关于韩顺平0基础学java——第24天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067823

相关文章

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分