Java学习笔记(StringJoiner和集合)

文章介绍了Java中StringJoiner类的使用,包括其构造方法和成员方法,强调了其在提高字符串操作效率和代码简洁性方面的优点。另外,文章还讲解了ArrayList集合的基本操作,如添加、删除、修改元素,以及集合与数组的区别。同时,提到了基本数据类型与包装类的关系,并展示了如何存储和处理自定义对象(如Student和User)的实例。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值