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

news2024/11/26 4:14:23

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);
            }
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity的三种Update方法

1、FixedUpdate 物理作用——处理物理引擎相关的计算和刚体的移动 (1) 调用时机&#xff1a;在固定的时间间隔内&#xff0c;而不是每一帧被调用 (2) 作用&#xff1a;用于处理物理引擎的计算&#xff0c;例如刚体的移动和碰撞检测 (3) 特点&#xff1a;能更准确地处理物理…

RIP路由附加度量值(华为)

#交换设备 RIP路由附加度量值 RIP&#xff08;Routing Information Protocol&#xff09;路由协议中的附加度量值是指在RIP路由原来度量值的基础上所增加的额外度量值&#xff0c;通常以跳数来表示。这个附加度量值可以是正值&#xff0c;也可以是负值&#xff0c;用于影响路…

嵌入式学习记录6.14(练习)

#include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(1028,783); //设置左侧背景QLabel *lab1new QLabel(this);lab1->…

慈善组织管理系统设计

一、用户角色与权限 慈善组织管理系统设计首先需要考虑的是用户角色与权限的划分。系统应明确区分不同的用户角色&#xff0c;如管理员、项目负责人、财务人员、捐赠者等&#xff0c;并为每个角色分配相应的权限。管理员应拥有最高的权限&#xff0c;能够管理系统全局&#xf…

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

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

嵌入式数据库的一般架构

嵌入式数据库的架构与应用对象紧密相关&#xff0c;其架构是以内存、文件和网络等三种方式为主。 1.基于内存的数据库系统 基于内存的数据库系统中比较典型的产品是每个McObject公司的eXtremeDB嵌入式数据库&#xff0c;2013年3月推出5.0版&#xff0c;它采用内存数据结构&…

redis 缓存jwt令牌设置更新时间 BUG修复

大家好&#xff0c;今天我又又又来了&#xff0c;hhhhh。 上文中 我们永redis缓存了token 但是我们发现了 一个bug &#xff0c;redis中缓存的token 是单用户才能实现的。 就是 我 redis中存储的键 名 为token 值 是jwt令牌 &#xff0c;但是如果 用户a 登录 之后 创建一个…

动态规划日常刷题

力扣70.爬楼梯 class Solution {public int climbStairs(int n) {return dfs(n);}//递归 //注意每次你可以爬 1 或 2 个台阶//如果最后一步是1 就先爬到n-1 把它缩小成0-n-1的范围//如果最后一步是2 就先爬到n-2 把它缩小成0-n-2的范围 private int dfs(int i){if(i < 1){r…

EarMaster 7.2. 54中文永久下载和安装激活使用指南

视唱练耳是每一个音乐艺考生都需要掌握的基础技能&#xff0c;要求学生通过学习掌握对音程、和弦以及单音的听辨能力。不过学习的过程不是一蹴而就的&#xff0c;除了需要大量的时间以外&#xff0c;还需要一些视唱练耳软件辅助学习。今天给大家介绍&#xff0c;能听辨音程的软…

EasyRecovery2024手机数据恢复的神器,你值得拥有!

EasyRecovery是一款超级实用的数据恢复软件&#xff0c;它能够帮助你找回不小心删除、格式化或丢失的数据。无论是照片、音乐、视频&#xff0c;还是重要的工作文件&#xff0c;EasyRecovery都能帮助你轻松找回。 而且&#xff0c;EasyRecovery的操作非常简单&#xff0c;即使…

OpenCV中 haarcascades 级联分类器各种模型.xml文件介绍

haarcascades Haar Cascades 是一种用于对象检测的机器学习模型&#xff0c;特别是在OpenCV库中广泛使用。这些模型通过训练大量的正样本&#xff08;包含目标对象的图像&#xff09;和负样本&#xff08;不包含目标对象的图像&#xff09;来识别图像中的对象。Haar Cascades …

索引失效有效的11种情况

1全职匹配我最爱 是指 where 条件里 都是 &#xff0c;不是范围&#xff08;比如&#xff1e;,&#xff1c;&#xff09;&#xff0c;不是 不等于&#xff0c;不是 is not null&#xff0c;然后 这几个字段 建立了联合索引 &#xff0c;而且符合最左原则。 那么就要比 只建…

如何让视频有高级感 高级感视频制作方法 高级感视频怎么剪 会声会影视频剪辑制作教程 会声会影中文免费下载

高质量视频通常具有清晰的画面、优质的音频和令人印象深刻的视觉效果。这篇文章来了解如何让视频有高级感&#xff0c;高级感视频制作方法。 一、如何让视频有高级感 要让视频有高级感&#xff0c;要注意以下几个要点&#xff1a; 1、剧本和故事性&#xff1a;一个好的剧本和…

ATMEGA16读写24C256

代码&#xff1a; #include <mega16.h> #include <stdio.h> #include <i2c.h> #include <delay.h> // Declare your global variables here #define EEPROM_BUS_ADDRESS 0xa0 #asm.equ __i2c_port0x15.equ __sda_bit1 .equ __scl_bit0 #endasm uns…

C语言程序设计-6 循环控制

C语言程序设计-6 循环控制 循环结构是程序中一种很重要的结构。其特点是&#xff0c;在给定条件成立时&#xff0c;反复执行某程序 段&#xff0c;直到条件不成立为止。给定的条件称为循环条件&#xff0c;反复执行的程序段称为循环体。&#xff23;语 言提供了多种循环语句&a…

【Python/Pytorch - 网络模型】-- TV Loss损失函数

文章目录 文章目录 00 写在前面01 基于Pytorch版本的TV Loss代码02 论文下载 00 写在前面 在医学图像重建过程中&#xff0c;经常在代价方程中加入TV 正则项&#xff0c;该正则项作为去噪项&#xff0c;对于重建可以起到很大帮助作用。但是对于一些纹理细节要求较高的任务&am…

Go源码--sync库(3):sync.Pool(2)

回收 回收其实就是将 pool.local 置为空 可以让垃圾回收器回收 我们来看下 源码 func init() {// 将 poolCleanup 注册到 gc开始前的准备工作处理器中在 STW时执行runtime_registerPoolCleanup(poolCleanup) }这里注册了清理程序到GC前准备工作 也就是发生GC前需要执行这段代…

百递云·API开放平台「智能地址解析API」助力地址录入标准化

地址信息的正确录入&#xff0c;是保证后续物流配送环节能够顺畅运行的必备前提&#xff0c;错误、不规范的收寄地址将会产生许多困扰甚至造成损失。 ✦地址信息通常包含国家、省、城市、街道、楼宇、门牌号等多个部分&#xff0c;较为复杂&#xff0c;填写时稍有疏忽就会出现…

2024年黑龙江省特岗招聘公告出了!!!

2024年黑龙江省农村义务教育阶段学校特设岗位教师招聘822人公告 (1、网上报名 时间&#xff1a;6月17日9&#xff1a;00—6月22日17&#xff1a;00。 网址&#xff1a; https&#xff1a;//sfyz.hljea.org.cn&#xff1a;7006/tgjs 2、网上资格审查 资格审查时间&#xff1a;6月…

GoldWave 6.80软件最新版下载【安装详细图文教程】

​简介 GoldWave是一款易上手的专业级数字音频编辑软件&#xff0c;从最简单的录制和编辑到最复杂的音频处理&#xff0c;恢复&#xff0c;增强和转换&#xff0c;它可以完成所有工作。包括WAV、OGG、VOC、 IFF、AIFF、 AIFC、AU、SND、MP3、 MAT、 DWD、 SMP、 VOX、SDS、AV…