Java学习笔记(StringJoiner和集合)

news2024/11/26 21:30:10

StringJoiner

StringJoiner与StringBuilder一样,也可以看成是一个容器,创建之后的内容是可变的

作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用

构造方法:

方法名

说明

public StringJoiner(间隔符号)创建一个StringJoiner对象,指定拼接时的间隔符号
public StringJoiner(间隔符号,开始符号,结束符号)创建一个StringJoiner对象,指定拼接时的间隔符号,开始符号,结束符号

成员方法:

方法名说明
public StringJoiner add(添加的内容)添加数据,并返回对象本身
public int length()返回长度
public String toString返回一个字符串(该字符串拼接之后的结果)

 构造方法1代码示例:

package StringJoiner;

import java.util.StringJoiner;

public class Demo1 {
    public static void main(String[] args) {
        //1.创建一个对象
        StringJoiner sj=new StringJoiner("---");
        //2.添加元素
        sj.add("aaa").add("bbb").add("ccc");
        System.out.println(sj);
    }
}

构造方法二代码示例:

package StringJoiner;

import java.util.StringJoiner;

public class Demo2 {
    public static void main(String[] args) {
        //1.创建对象
        StringJoiner sj=new StringJoiner(",","[","]");
        //2.添加元素
        sj.add("aaa").add("bbb").add("ccc");
        System.out.println(sj);
    }
}

集合:

 集合与数组的区别

长度存储方式
数组长度确定可以存储基本数据类型,也可以存储引用数据类型
集合可自动扩容不能直接存储基本数据类型(要通过包装类来实现),可以直接存储引用数据类型

ArrayList:

泛型:限定集合中存储数据的类型

方法名说明
boolean add(E,e)添加元素,返回值表示是否添加成功
boolean remove(E,e)删除指定元素,返回值表示是否删除成功
E remove(int index)删除指定索引的元素,返回被删除元素
E set(int index,E e)修改指定索引下的元素,返回原来的元素
E get(int index)获取指定索引的元素
int size()集合的长度,也就是集合中元素的个数

代码示例:

package ArrayList;

import java.util.ArrayList;

public class Demo1 {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<String >list =new ArrayList<>();
        //2.添加元素
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        //3.删除
        /*boolean result=list.remove("aaa");
        System.out.println(result);
        System.out.println(list);*/
        //根据索引删除
        String str =list.remove(0);
        System.out.println(str);
        System.out.println(list);
        //4.修改
        String result=list.set(1,"ddd");
        System.out.println(result);
        System.out.println(list);
        //5.查询
        String s=list.get(0);
        System.out.println(s);
        System.out.println(list);
        //6.遍历
        for (int i = 0; i < list.size(); i++) {
            String str1=list.get(i);
            System.out.println(str1);
        }
        
    }
}

基本数据类型对应的包装类:

byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

代码示例:

package ArrayList;

import java.util.ArrayList;

public class Demo2 {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Integer> list=new ArrayList<>();
        //2.添加元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        //遍历集合
        System.out.print("[");
        for (int i = 1; i < list.size(); i++) {
            if(i==list.size() -1)
            {
                System.out.print(i);
            }
            else {
                System.out.print(i+",");
            }
        }
        System.out.println("]");
    }
}

 

package ArrayList;

public class Student {
    //1.私有化成员变量
    //2.空参构造方法
    //3.带全部参数的构造方法
    //4.get set方法
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package ArrayList;

import java.util.ArrayList;
import java.util.Scanner;

public class Demo4 {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        //2.键盘录入学生信息并添加到集合当中
        Scanner sc= new Scanner(System .in);
        for (int i = 0; i < 3; i++) {
            Student s=new Student();
            System.out.println("请输入学生的姓名");
            String name=sc.next();
            System.out.println("请输入学生的年龄");
            int age=sc.nextInt() ;
            s.setName(name);
            s.setAge(age);
            list.add(s);

        }
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println(stu.getName() +","+stu.getAge() );
        }
    }
}

 

package ArrayList;

public class User {
    private String id;
    private String username;
    private String password;

    public User() {
    }

    public User(String id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    public String toString() {
        return "User{id = " + id + ", username = " + username + ", password = " + password + "}";
    }
}
package ArrayList;

import java.util.ArrayList;

public class Demo5 {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<User> list=new ArrayList<>();
        //2.创建三个用户对象
        User u1=new User("heima001","zhangsan","123456");
        User u2=new User("heima002","lisi","12345678");
        User u3=new User("heima003","wangwu","1234qwer");
        //3.添加用户
        list.add(u1);
        list.add(u2);
        list.add(u3);
        //4.查看是否存在
        boolean flag=search(list,"heima001");
        System.out.println(flag);
    }
    public static boolean search(ArrayList<User> list,String id){
        for (int i = 0; i < list.size(); i++) {
           if(list.get(i).getId().equals(id)){
               //如果找到了直接返回true
               return true;
           }
        }
        //当循环结束表示集合里面所有的元素都已经比较完毕,还没有一样的即返回false
        return false;
    }
}

注: 如果要返回多个数据,可以把这些数据先放到一个容器中,再把容器返回

package ArrayList;

public class Phone {
    private String brand;
    private int price;

    public Phone() {
    }

    public Phone(String brand, int price) {
        this.brand = brand;
        this.price = price;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
}
package ArrayList;

import java.util.AbstractList;
import java.util.ArrayList;

public class Demo6 {
    public static void main(String[] args) {
        ArrayList<Phone> list=new ArrayList<>();
        //创建手机对象
        Phone p1=new Phone("小米",1000);
        Phone p2=new Phone("苹果",8000);
        Phone p3=new Phone("锤子",2999);
        //添加数据
        list.add(p1);
        list.add(p2);
        list.add(p3);
        //调用
        ArrayList<Phone> result1=getphoneInfo(list);
        //遍历集合
        for (int i = 0; i < result1.size(); i++) {
            Phone phone=result1.get(i);
            System.out.println(phone.getBrand() +","+phone.getPrice() );
        }
    }
    public static ArrayList<Phone> getphoneInfo(ArrayList<Phone> list)
    {
        //定义一个集合,用于存储价格低于3000的手机对象
        ArrayList<Phone> result=new ArrayList<>();
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            Phone p=list.get(i);
            int price =p.getPrice();
            if(price<3000){
                result.add(p);
            }
        }
        return result ;
    }
}

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

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

相关文章

四、HAL_驱动机械按键

1、开发环境。 (1)KeilMDK&#xff1a;V5.38.0.0 (2)STM32CubeMX&#xff1a;V6.8.1 (3)MCU&#xff1a;STM32F407ZGT6 2、机械按键简介 (1)按键内部是机械结构&#xff0c;也就是内部是没有电路的。按键按下内部引脚导通&#xff0c;松开内部断开。 3、实验目的&原理…

Git、Github、Gitee的区别

⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Git 目录 1、Git2、Gitee3、GitHub 什么是版本管理&#xff1f;   版本管理是管理各个不同的版本&#xff0c;出了问题可以及时回滚。 1、Git Git是一个分布式版本控制系统&#xff0c;用于跟踪和管理代码的变化。它是…

开源代码分享(2)—综合能源系统零碳优化调度

参考文献&#xff1a; Optimal dispatch of zero-carbon-emission micro Energy Internet integrated with non-supplementary fired compressed air energy storage system | SGEPRI Journals & Magazine | IEEE Xplore 1.引言 全球能源危机和环境污染的双重压力促使能量…

mysql 删表引出的问题

背景 将测试环境的表同步到另外一个数据库服务器中&#xff0c;但有些表里面数据巨大&#xff0c;&#xff08;其实不同步该表的数据就行&#xff0c;当时没想太多&#xff09;&#xff0c;几千万的数据&#xff01;&#xff01; 步骤 1. 既然已经把数据同步过来的话&#x…

chatgpt赋能python:Python怎么从1加到100

Python怎么从1加到100 Python是一种面向对象的编程语言&#xff0c;随着人工智能和大数据技术的流行&#xff0c;Python也变得越来越受欢迎。Python有很多优点&#xff0c;其中之一就是易于学习和使用。在这篇文章中&#xff0c;我们将介绍如何用Python从1加到100。 前置知识…

还在为浏览量焦虑吗?为何不用R语言来做归因分析找出痛点

一、引言 大家好&#xff0c;我是一名博客作者&#xff0c;同时也是一个有着浏览量焦虑症的患者。每次发一篇新的博客文章&#xff0c;我总是不停地刷新页面&#xff0c;看看有多少人来访问、阅读和留言。当发现访问量不如自己预期时&#xff0c;我就会有一种被冷落、被忽视的…

【DFT】MBIST (1) MBIST基础

MBSIT基础 1. 存储器测试2. 存储器结构3. 存储器故障模型3.1 固定故障(SAF)3.2 转换故障(TF)3.3 耦合故障(CF)3.4 桥接和状态耦合故障 4. 功能测试方法4.1 March 测试算法4.2 March-C 算法4.3 MATS 算法4.4 其他的 March 测试 5. MBSIT方法5.1 简单的 March MBIST1. 简单的Marc…

灵动超值系列FTHR-G0140开发板

文章目录 引言MM32G0140微控制器FTHR-G0140电路板MM32G0140最小核心系统供电系统可编程按键和小灯扩展插座 MindSDK软件开发平台 引言 2023年上半年的一些活动现场&#xff08;包括但不限于4月在苏州的全国高校电子信息类专业教学论坛、5月和6月在同济大学、四川大学、南京大学…

Vue3+Vite+TypeScript常用项目模块详解

目录 1.Vue3ViteTypeScript 概述 1.1 vue3 1.1.1 Vue3 概述 1.1.2 vue3的现状与发展趋势 1.2 Vite 1.2.1 现实问题 1.2 搭建vite项目 1.3 TypeScript 1.3.1 TypeScript 定义 1.3.2 TypeScript 基本数据类型 1.3.3 TypeScript语法简单介绍 2. 项目配置简单概述 2.…

chatgpt赋能python:如何在Python中二次运行同一个命令语句

如何在Python中二次运行同一个命令语句 如果您是一个熟练的Python开发者&#xff0c;一定会遇到必须二次运行同一个命令语句的情况。在本文中&#xff0c;我们将探讨Python中的几种方法来实现这一目标。 方法1&#xff1a;使用Python Shell Python Shell是Python解释器的一个…

R 语言学习笔记

1. 基础语法 赋值 a 10; b <- 10;# 表示流向&#xff0c;数据流向变量&#xff0c;也可以写成10 -> b创建不规则向量 不用纠结什么是向量&#xff0c;就当作一个容器&#xff0c;数据类型要相同 a c("我","爱","沛")创建一定规则的向…

编译原理 | 课程设计 — 语法分析

第1关&#xff1a;使用C/C语言编写PL/0编译程序的语法分析程序 1、任务描述 基于第二章的词法分析程序&#xff0c;使用C/C语言编写PL/0编译程序的语法分析程序。 2、编程要求 完成上述编程任务&#xff0c;将C/C语言源程序复制粘贴到右侧代码编辑器&#xff0c;点击“评测”按…

bthclsbthclsbthcls

Sql简单查询 创建数据库/表 进入数据库&#xff1a;mysql -uroot -p123456 支持中文字符&#xff1a; Set character_set_databaseutf8; Set character_set_serverutf8; 1.创建数据库 create database demo; use demo; 2.创建数据表 create table score( id int primar…

Day_48堆排序

目录 一. 关于堆排序 1. 堆的定义 二. 堆排序的实现 1. 堆排序的思路 2. 堆排序的问题分析 3. 堆排序的具体实施 4. 效率分析 三. 堆排序的代码实现 1. 堆排序 2. 调整堆&#xff08;核心代码&#xff09; 四. 代码展示 五. 数据测试 六. 总结 一. 关于堆排序 1. 堆的定义…

Shell脚本学习记录

shell教程 第一个shell脚本 打开文本编辑器(可以使用 vi/vim 命令来创建文件)&#xff0c;新建一个文件 test.sh&#xff0c;扩展名为 sh&#xff08;sh代表shell&#xff09;。 #!/bin/bash echo "Hello World !" #! 是一个约定的标记&#xff0c;它告诉系统这个…

ieda codeformatV2.xml

ieda codeformatV2.xml 目录概述需求&#xff1a; 设计思路实现思路分析1.codeformatV22.codeformatV23.codeformatV24.codeformatV25.数据处理器 拓展实现 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&…

MySQL数据库基础 08

第八章 聚合函数 1. 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和MAX函数1.3 COUNT函数 2. GROUP BY2.1 基本使用2.2 使用多个列分组2.3 GROUP BY中使用WITH ROLLUP 3. HAVING3.1 基本使用3.2 WHERE和HAVING的对比 4. SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL 的执…

MT1619

MT1619 是一款PD快充开关电源转换器芯片&#xff0c;其内部集成了一颗高集成度、高性能的电流模式 PWM 控制器和一颗功率 MOSFET。它适用于小于 30W 的开关电源设备。MT1619 具有恒功率功能&#xff0c;特别适用于 PD 充电器、电源适配器等中小功率的开关电源设备。极低的启动电…

[golang 微服务] 5. 微服务服务发现介绍,安装以及consul的使用,Consul集群

一.服务发现介绍 引入 上一节讲解了使用 gRPC创建微服务,客户端的一个接口可能需要调用 N个服务,而不同服务可能存在 不同的服务器,这时&#xff0c;客户端就必须知道所有服务的 网络位置&#xff08;ipport&#xff09;&#xff0c;来进行连接服务器操作,如下图所示: 以往的做…

赋值运算符重载实例:Date类(结尾附源码)

赋值运算符重载实例&#xff1a;Date类 文章目录 赋值运算符重载实例&#xff1a;Date类一、构造日期类二、获取某年某月天数以及检查合法1.获取某年某月天数2.检查日期合法3.打印日期类 三、不同运算符的重载&#xff08;1&#xff09; ; !&#xff08;2&#xff09;> ; &g…