当前位置: 首页 > article >正文

java学习-集合

为什么有集合?

自动扩容

数组:长度固定,可以存基本数据类型和引用数据类型

集合:长度可变,可以存引用数据类型,基本数据类型的话需要包装类

ArrayList

public class studentTest {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        boolean res=list.add("aaa");
        System.out.println(res); //true
        System.out.println(list);//[aaa]
        list.add("bbb");
        list.add("cccc");
        System.out.println(list); //[aaa, bbb, cccc]
        //删除
        boolean res1=list.remove("aaa");
        System.out.println(res1); //true
        System.out.println(list);//[bbb, cccc]
        //根据索引删除,返回被删除元素
        String str=list.remove(0);
        System.out.println(str);//bbb
        //修改,返回旧值
        String res2=list.set(0,"000");
        System.out.println(res2);//cccc
        System.out.println(list);//[000]
        //查询
        String str3=list.get(0);
        System.out.println(str3);//000
        //获取长度
        System.out.println(list.size());//1

    }


}

案例 创建集合,添加元素,遍历

public class studentTest {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("bhjhsd");
        list.add("dwshv");
        list.add("fs2552");
        System.out.print("[");
        for (int i = 0; i <list.size() ; i++) {
            if(i==list.size()-1){
                System.out.println(list.get(i)+"]");
            }else{
                System.out.print(list.get(i)+", ");
            }
        }

    }


}

案例 定义一个集合 添加数字,遍历。

包装类  

public class studentTest {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(3);
        list.add(5);
        System.out.print("[");
        for (int i = 0; i <list.size() ; i++) {
            if(i==list.size()-1){
                System.out.println(list.get(i)+"]");
            }else{
                System.out.print(list.get(i)+", ");
            }
        }
//[1, 3, 5]
    }


}

案例 添加学生类对象

//存储学生信息
public class Student{

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


}
public class studentTest {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        Student s1=new Student("lisa",15);
        Student s2=new Student("bob",18);
        Student s3=new Student("anna",17);
        list.add(s1);
        list.add(s2);
        list.add(s3);
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println(stu.getName()+", "+stu.getAge());
        }
    }
//lisa, 15
//bob, 18
//anna, 17

}

键盘录入学生信息:

public class studentTest {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i <3 ; i++) {
            Student stu =new Student();
            System.out.println("输入学生姓名");
            String name=sc.next();
            System.out.println("输入学生年龄");
            int age=sc.nextInt();
            stu.setAge(age);
            stu.setName(name);
            list.add(stu);

        }
        for (int i = 0; i <list.size() ; i++) {
            Student s=list.get(i);
            System.out.println(s.getName()+", "+s.getAge());
        }
//hbkjsd, 12
//dv, 15
//dvg, 13
    }


}

案例 添加用户对象并判断是否存在

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

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
public class userTest {
    public static void main(String[] args) {
        ArrayList<User> list =new ArrayList<>();
        User u1=new User("001","zhangsan","123456");
        User u2=new User("002","lisi","12354526");
        User u3=new User("003","wangwu","123dfssdf6");
        list.add(u1);
        list.add(u2);
        list.add(u3);
        System.out.println(contain(list,"002"));

    }
    public static boolean contain(ArrayList<User> list,String id){
        for (int i = 0; i <list.size() ; i++) {
            boolean res=list.get(i).getId().equals(id);
            if(res){
                return true;
            }
        }
        return false;
    }


}

更改,存在返回索引,不存在返回-1

public class userTest {
    public static void main(String[] args) {
        ArrayList<User> list =new ArrayList<>();
        User u1=new User("001","zhangsan","123456");
        User u2=new User("002","lisi","12354526");
        User u3=new User("003","wangwu","123dfssdf6");
        list.add(u1);
        list.add(u2);
        list.add(u3);
        System.out.println(contain(list,"002"));

    }
    public static int contain(ArrayList<User> list,String id){
        for (int i = 0; i <list.size() ; i++) {
            boolean res=list.get(i).getId().equals(id);
            if(res){
                return i;
            }
        }
        return -1;
    }


}

案例 创建手机对象,低于价格的返回

//把价格低于3000的返回
public class phoneTest {
    public static void main(String[] args) {
        ArrayList<Phone> list =new ArrayList<>();
        Phone p1=new Phone("xiaomi",1000);
        Phone p2=new Phone("pingguo",8000);
        Phone p3=new Phone("xchuizi",2999);
        list.add(p1);
        list.add(p2);
        list.add(p3);
        ArrayList<Phone> reslist=getPhoneInfo(list);
        for (int i = 0; i < reslist.size(); i++) {
            Phone p=reslist.get(i);
            System.out.println(p.getBrand()+", "+p.getPrice());
        }

    }
    public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){
        ArrayList<Phone> reslist=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            Phone p=list.get(i);
            int price=p.getPrice();
            if(price<3000){
                reslist.add(p);
            }
        }
        return reslist;
    }


}


http://www.kler.cn/a/405374.html

相关文章:

  • 智慧社区方案提升居民生活质量与管理效率的创新实践
  • MongoDB进阶篇-索引(索引概述、索引的类型、索引相关操作、索引的使用)
  • 【UCIE协议系列-1】
  • Java 爬虫深度解析销量和商品详情数据获取
  • RocketMQ: 集群部署注意事项
  • Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线
  • 数据新时代:如何选择现代数据治理平台(上)
  • 数据结构及算法--排序篇
  • 如何能让安全责任更清晰——构建清晰安全责任体系策略与实践
  • 数字IC后端实现时钟树综合系列教程 | Clock Tree,Clock Skew Group之间的区别和联系
  • 【工程记录】vscode+ssh远程配置python环境方法
  • 嵌入式:STM32的启动(Startup)文件解析
  • 生成式AI在教育技术中的应用:变革与创新
  • 开源生态发展合作倡议
  • 蓝桥杯-顺子日期
  • wireshark使用lua解析自定义协议
  • 神经网络问题之:梯度不稳定
  • 开源 LLM 网关:APIPark 能做什么?
  • python获取本地电脑的ip和mac地址
  • Python后端入门
  • 微信小程序技术架构图
  • 力扣--LCR 141.训练计划III
  • 二十:HTML Form表单提交时的协议格式
  • 银河麒麟v10 x86架构二进制方式kubeadm+docker+cri-docker搭建k8s集群(证书有效期100年) —— 筑梦之路
  • C++ 中的智能指针
  • 设计模式之 桥接模式