韩顺平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();//返回下一个元素,类型是Object
            System.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;
    }

    @Override
    public 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++){
            //取出对象book
            Book 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);
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/715338.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu中安装docker并换源

使用 Ubuntu 的仓库安装 Docker sudo apt update现在&#xff0c;你可以使用以下命令在 Ubuntu 中安装 Docker 以及 Docker Compose&#xff1a; sudo apt install docker.io docker-composeDocker 包被命名为 docker.io&#xff0c;因为在 Docker 出现之前就已经存在一个名为…

pytorch学习笔记6

想要找一些官方的小工具数据集&#xff0c;可以进入pytorch官网&#xff0c;DOCS-》pytorch下拉至libraries&#xff0c;点击torchversion&#xff0c;调整版本至0.9.0就可以找到相应的一些数据集&#xff0c;训练集 ctrlp可以看一个函数中需要设置哪些参数 下载数据集可以参考…

如何解决javadoc一直找不到路径的问题?

目录 一、什么是javadoc二、javadoc为什么会找不到路径三、如何解决javadoc一直找不到路径的问题 一、什么是javadoc Javadoc是一种用于生成Java源代码文档的工具&#xff0c;它可以帮助开发者生成易于阅读和理解的文档。Javadoc通过解析Java源代码中的注释&#xff0c;提取其…

C++并发之锁(std::lock_guard,std::unique_lock)

目录 1 概述2 使用实例3 接口使用3.1 lock_guard3.2 adopt_lock3.3 defer_lock3.4 try_to_lock3.5 try_lock3.6 release3.7 lock3.8 call_one1 概述 锁保护是通过使互斥对象始终处于锁定状态来管理互斥对象的对象。。   在构造时,互斥对象被调用线程锁定,在析构时,互斥被解…

集成学习方法:Bagging与Boosting的应用与优势

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

Unity C#调用Android,IOS震动功能

最近在Unity上需要很原生移动端进行交互&#xff0c; 原理&#xff1a;新建一个android项目&#xff0c;把生成的app module给干掉&#xff0c;然后留下一个vibrationPlugin module&#xff0c;在这个module下写android震动代码&#xff0c;将这个android工程构建出来的 aar移…

17个关键方法指南,保护您的web站点安全!

了解如何让您的web应用程序或网站安全&#xff0c;对于网站所有者来说至关重要。以下是一些关键步骤&#xff0c;可以帮助您保护网站免受攻击和数据泄露。 1.使用公钥加密技术 当数据以明文形式传输时&#xff0c;它容易受到中间人 &#xff08;MitM&#xff09; 攻击。这意味…

计算机网络:网络层 - 路由选择协议

计算机网络&#xff1a;网络层 - 路由选择协议 路由器的结构路由选择协议概述自治系统 AS内部网关协议路由信息协议 RIP距离向量算法RIP报文格式收敛问题 开放最短路径优先 OSPF基本工作原理自治系统分区 外部网关协议BGP-4 路由器的结构 如图所示&#xff0c;路由器被分为路由…

【three.js】设置canvas画布背景透明

通过Three.js渲染一个模型的时候&#xff0c;不希望canvas画布有背景颜色&#xff0c;也就是canvas画布完全透明&#xff0c;可以透过canvas画布看到画布后面叠加的HTML元素图文&#xff0c;呈现出来一种三维模型悬浮在网页上面的效果。 比如我们现在的模型背景是黑色的&#…

数据库概述1

数据&#xff1a;描述事物的符号记录称为数据&#xff1b; 包括数字、图片、音频等&#xff1b; 数据库&#xff1a;长期储存在计算机内有组织、可共享的大量数据的集合&#xff1b;数据库中的数据按照一定的数据模型组织、描述和存储&#xff0c;具有较小的数据冗余、较高的数…

AI玩具来了,它怎么样?

90后的我们&#xff0c;是AI时代的见证者。20后的小孩&#xff0c;才是AI时代的原著民。当ChatGPT们改变着大人的工作方式&#xff0c;我觉得&#xff0c;是时候让孩子们的玩具也更聪明些了吧。于是&#xff0c;在六一前夕&#xff0c;我用市面上的AI语音对话套件给娃DIY了一套…

简单谈谈云服务器私网IP的存在意义及优势

云服务器是基于虚拟化技术的计算资源&#xff0c;可以在云平台上灵活创建和管理。为了满足不同用户的需求&#xff0c;云服务提供商在云服务器上分配了两种类型的IP地址&#xff1a;公网IP和私网IP。其中&#xff0c;私网IP是指在局域网内使用的内部IP地址&#xff0c;无法通过…

“Dream Machine“震撼登场!免费推出的AI电影级巨制在网络上引爆热潮

"巅峰初现&#xff01;视频AI新星‘梦幻制造者’华美登场&#xff01; 在视频生成技术的赛道上&#xff0c;Luma AI昨日骄傲地揭开了其旗舰创新——梦幻制造者&#xff08;Dream Machine&#xff09;的神秘面纱&#xff0c;凭借无与伦比的文本到视频及图像到视频转换技术…

ARIMA模型与ARIMA-GARCH模型预测时间序列

上世纪 70 年代初&#xff0c;Ljung 等人提出 ARIMA 模型&#xff0c;又称求和自回归移动平均模型。其思想 是针对于非平稳时间序列进行数学建模&#xff0c;将其通过差分运算后 进行相关数据刻画 &#xff0c;变为一个平稳的新序列&#xff0c;进而进行相关数据的刻画。 自 1…

[SWPUCTF 2022 新生赛]善哉善哉(隐写,新佛曰,MD5)

题目&#xff1a; 我们看到&#xff1a;题目就是一张图片便联想到隐写术。、 首先查看图片的详细信息我们看到 又看到有关MD5加密。 我们利用小鲨鱼(Stegsolve)破解得到&#xff1a; 小鲨鱼下载可参考&#xff1a;CSDN小鲨鱼下载安装配置 最后面有一段摩斯密码&#xff0c;破…

纯C实现的ymodem库,无额外依赖

本文目录 1、引言2、理论2.1 YMODEM协议的主要特点2.2 YMODEM的工作原理 3、代码3.1 main.cpp3.2 ymodem.c 3.3 ymodem.h 4、验证4.1 ymodem发送4.2 ymodem接收 5、移植说明 文章对应视频教程&#xff1a; 暂无&#xff0c;可以关注我的B站账号等待更新。 点击图片或链接访问我…

会评答辩ppt制作_杰青_长江学者_优青_海外优青_青拔_青年长江学者上会ppt模板

国家杰出青年科学基金 (英文:The National Science Fund for Distinguished Young Scholars&#xff0c;简称:杰青基金)&#xff0c;是中国为促进青年科学和技术人才的成长&#xff0c;鼓励海外学者回国工作&#xff0c;加速培养造就一批进入世界科技前沿的优秀学术带头人而特…

【CTF Web】CTFShow 探针泄露 Writeup(PHP+探针泄露+信息收集)

探针泄露 10 对于测试用的探针&#xff0c;使用完毕后要及时删除&#xff0c;可能会造成信息泄露 解法 查看网页源代码。 view-source:https://11170dfe-84c7-4fde-b1ca-5d1ec3dd7570.challenge.ctf.show/没有找到有用的信息。 用 dirsearch 扫描。 dirsearch -u https://1…

【MySQL】(基础篇十三) —— 联结

联结 本文介绍什么是联结&#xff0c;为什么要使用联结&#xff0c;如何编写使用联结的SELECT语句。介绍如何对被联结的表使用表别名和聚集函数。 SQL最强大的功能之一就是能在数据检索查询的执行中联结&#xff08;join&#xff09;表。联结是利用SQL的SELECT能执行的最重要…

Python学习笔记10:入门知识(十)

函数 什么是函数 简单来说就是具备某些特定功能的带有名称的代码块。比如之前我们讲过的列表的增删改查函数&#xff0c;排序函数等等。 函数的作用 代码复用。函数作为具备某些特定功能的代码块&#xff0c;当你的程序需要多次使用同一段业务逻辑的时候&#xff0c;使用函…