2023.3.2--java基础语法学习day11--集合

1.集合

数组存储基本数据类型和引用数据类型,集合是不能存基数据类型
集合自动扩容
数组长度固定,集合长度可变

(1)集合--增删查改

import java.util.ArrayList;
public class Test1 {
    public static void main(String[] args) {
        //创建集合的对象
        //泛型:限定集合中存储数据的类型
        ArrayList<String> list=new ArrayList<>();
        System.out.println(list);
        //添加元素
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list);
        //删除元素
        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);
        //修改元素
        String result1=list.set(0,"ddd");//把ddd交给0索引上的元素
        System.out.println(result1);
        System.out.println(list);
        //查询元素
        String s= list.get(0);
        System.out.println(s);
        System.out.println(list);
        for (int i = 0; i < list.size(); i++) {
            //i 索引
            //list get(i)元
        }
    }

(2)集合--添加字符串和整数并遍历

import java.util.ArrayList;
/**集合
 * 定义一个集合,添加字符串,并进行遍历
 * 定义一个集合,添加数字,并进行遍历
 *
 */
public class Test2 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<String> list=new ArrayList<>();
        //添加元素
        list.add("点赞了吗");
        list.add("点赞了吗");
        list.add("点赞了吗");
        list.add("转发了吗");
        System.out.print("[");
        for (int i = 0; i < list.size(); i++) {
            if(i!= list.size()-1)
            {
                System.out.print(list.get(i)+",");
            }
            else
            {
                System.out.print(list.get(i));
            }
        }
        System.out.println("]");
        ArrayList<Integer> list1=new ArrayList<>();
        //添加元素
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        System.out.print("[");
        for (int i = 0; i < list1.size(); i++) {
            if(i!= list1.size()-1)
            {
                System.out.print(list1.get(i)+",");
            }
            else
            {
                System.out.print(list1.get(i));
            }
        }
        System.out.println("]");
    }
}

(3)集合--查找用户是否存在

import java.util.ArrayList;
import java.util.Scanner;
/**
 * 查找用户是否存在
 * main 方法中定义一个集合,存入三个用户对象,对象属性:id,username,password
 * 定义一个方法根据id查找用户信息,存在返回true,不存在返回false
 */
public class Test5 {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<User> list=new ArrayList<>();
        //2.创建对象
        Scanner scanner=new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            System.out.println("请输入用户的id、用户名、密码");
            String id= scanner.next();
            String username= scanner.next();
            int password= scanner.nextInt();
            User user=new User(id,username,password);
            list.add(user);
        }
        for (int i = 0; i < list.size(); i++) {
            User user=list.get(i);
            System.out.println(user.getId()+","+user.getUsername()+","+user.getPassword());
        }
        System.out.println();
        boolean user1 = isUser(list);
        System.out.println(user1);
    }
//   public static boolean isUser(ArrayList<User> list,String id) {
//        Scanner scanner = new Scanner(System.in);
//        for (int i = 0; i < list.size(); i++) {
//            System.out.println("请输入你想要查找的用户id:");
//            User user = list.get(i);
//            String uid = scanner.next();
//            if (uid.equals(id)) {
//                return true;
//            }
//        }
//        return false;
//    }
    public static boolean isUser(ArrayList<User> list) {
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < list.size(); i++) {
            System.out.println("请输入你想要查找的用户id:");
            User user = list.get(i);
            String uid = scanner.next();
            if (uid.equals(list.get(i).getId())) {
                return true;
            }
        }
        return false;
    }
    }

(4)集合--返回多个数据

import java.util.ArrayList;

/**集合
 *定义Javabean类:phone
 * phone的属性:品牌,价格
 *main方法中定义一个集合存入三个三个手机对象,分别为小米1000,苹果8000,锤子2999
 * 定义一个方法将价格低于3000的手机信息返回
 */
public class Test6 {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Phone>list=new ArrayList<>();
        //2.创建对象
        Phone phone1=new Phone("小米",1000);
        Phone phone2=new Phone("苹果",8000);
        Phone phone3=new Phone("锤子",2999);
        //3.添加对象
        list.add(phone1);
        list.add(phone2);
        list.add(phone3);
        //4.调用方法
        ArrayList<Phone> phoneInfolist=getPhone(list);
        //遍历集合
        for (int i = 0; i < phoneInfolist.size(); i++) {
            Phone phone=phoneInfolist.get(i);
            System.out.println(phone.getBrand()+","+ phone.getPrice());
        }
    }
    //如果想要返回多个数据,可以先将这些数据放在一个容器中
    public static ArrayList<Phone> getPhone(ArrayList<Phone>list ) //返回的是集合,则返回值的类型就应该是集合
    {
        //定义一个集合用于存储低于3000的手机价格
        ArrayList<Phone> resultlist=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            Phone p= list.get(i);
            int price=p.getPrice();
            if(price<3000)
            {
                resultlist.add(p);
            }
        }
        return resultlist;
    }
}

(5)综合训练--学生管理系统

import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        while (true) {
            System.out.println("---------------------欢迎来到学生管理系统----------------------");
            System.out.println("1:添加学生");
            System.out.println("2:删除学生");
            System.out.println("3:修改学生");
            System.out.println("4:查询学生");
            System.out.println("5:退出");
            System.out.println("请输入你的选择:");
            Scanner scanner = new Scanner(System.in);
            String choose = scanner.next();
            switch (choose) {
                case "1":    //case后面跟的是要和表达式进行比较的值,只能是等值判定,而不是范围判定
                    addStudent(list);
                case "2":
                    deleteStudent(list);
                case "3":
                    changeStudent(list);
                case "4":
                    selectStudent(list);
                case "5":
                    System.out.println("退出");
                    //break loop;    //表示从loop这个循环跳出
                System.exit(0);//停止虚拟机运行
                default:
                    System.out.println("没有这个选项");
            }
        }
    }
        //功能1:添加学生
        public static void addStudent (ArrayList<Student> list) {
            System.out.println("---------------------------添加学生--------------------------");
            //利用空参构造创建学生对象
            Student s = new Student();
            String id = null;
            while (true) {   //快捷键ctrl+shift+t ---->循环包裹
                Scanner scanner = new Scanner(System.in);
                //String id = null;
                System.out.println("请输入学生的id");
                 id = scanner.next();
               boolean flag = contains(list, id);//调用contains方法
                if (flag) {
                    System.out.println("id已经存在,请重新录入");
               } else {
                    System.out.println("你输入的id不存在,可以用");s.setId(id);
                   break;
                }
                System.out.println("请输入学生的姓名");
                String name = scanner.next();
                s.setName(name);
                System.out.println("请输入学生的年龄");
                int age = scanner.nextInt();
                s.setAge(age);
                System.out.println("请输入学生的家庭住址");
                String address = scanner.next();
                s.setAddress(address);
                //创建学生对象
                Student student = new Student(id, name, age, address);
                //把学生对象添加到集合中
                list.add(student);
                //提示添加成功
                System.out.println("学生信息添加成功");
              
            }
        }
        //功能2:删除学生
        public static void deleteStudent (ArrayList<Student> list) {
            System.out.println("---------------------------删除学生--------------------------");
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入要删除的id");
            String id= scanner.next();
            //查询id在集合中的索引
            int index=getIndex(list ,id);
            //对index进行判断,大于等于0,表示存在,直接删除,如果是-1,就表示不存在,结束方法,回到初始菜单
            if (index>=0)
            {
                list.remove(index);//通过索引直接删除
                System.out.println("id 为"+id+"的学生删除成功");
            }else
            {
                System.out.println("id不存在,删除失败");
            }
        }
        //功能3:修改学生
        public static void changeStudent (ArrayList<Student> list) {
            System.out.println("---------------------------修改学生---------------------------");
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入要修改的学生id");
            String id= scanner.next();
            int index=getIndex(list,id);
            if(index==-1)
            {
                System.out.println("要修改的id"+id+"不存在,请重新修改");
                return;
            }
            Student stu = list.get(index);
            //修改学生姓名
            System.out.println("请输入要修改的学生姓名");
            String newname= scanner.next();
            stu.setName(newname);//把newname传递过去
            System.out.println("请输入要修改的学生年龄");
            int newage= scanner.nextInt();
            stu.setAge(newage);//把newname传递过去
            System.out.println("请输入要修改的学生地址");
            String newaddress= scanner.next();
            stu.setAddress(newaddress);
            System.out.println("学生信息修改成功");
        }
        //功能4:查询学生
        public static void selectStudent (ArrayList<Student> list) {
            System.out.println("---------------------------查询学生---------------------------");
            if (list.size() == 0) {
                System.out.println("当前无学生信息,请添加后再查询");
                return;
            }
            //打印表头信息
            System.out.println("id\t姓名\t年龄\t家庭住址");
            //当代码执行到这里的时候,表示集合中是有数据的
            for (int i = 0; i < list.size(); i++) {
                Student student = list.get(i); //得到当中的每一个学生对象
                System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t" + student.getAddress());
            }
        }
        //功能5:判断id在集合中是否存在
    public static boolean contains(ArrayList<Student>list,String id)
    {
        //循环遍历集合得到里面的每一个学生对象,拿到学生对象后,获取id进行判断,如果有返回结果TRUE,如果结果没有返回false
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            String sid=stu.getId();
            if(sid.equals(id))
            {
                return true;
            }
        }
        return false;//循环结束后都没有找到,返回false
    }
       //功能6:通过id获取索引
    public static int getIndex(ArrayList<Student>list,String id){
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //得到每一个学生对象
            Student stu = list.get(i);
            //得到每一个学生对象的id
            String sid=stu.getId();
            //集合中的id与要删除的id作比较
            if(sid.equals(id))
            {
                return i;//如果id相同,返回i索引
            }
        }
        return -1;
    }
    }

每天都要敲敲敲
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
综合案例----学生管理系统
m0_65140786的博客
08-13 320
代码】综合案例----学生管理系统。
Java#16(包装类和集合练习)
guaiwu_的博客
11-19 816
了解一下基本数据类型的包装类,同时集合练习必不可少
集合存储三个学生对象
多喝清晨的粥
03-27 1396
创建一个存储学生对象的集合,存储3个学生对象,控制台遍历该集合打印结果 public class a_Arraylist { /* 分析: 1.定义一个学生类 2.创建集合对象 3.创建学生对象 4.添加学生对象到集合中 5.遍历集合,打印结果 */ public static void main(String[] args) { ArrayList&lt
2023.2.24--java基础语法学习day5--方法
weixin_46654971的博客
02-24 62
1.方法 Java方法是语句的集合,它们在一起执行一个功能,不调用就不执行 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用,提高代码的复用性 System.out.println() println() 是一个方法。 System 是系统类。 out 是标准输出对象。 2. package com.cn.whx.method; import java.util.Random; import java.util.Sca
JAVA基础学习笔记-day05-面向对象基础
天才在左,疯子在右,而我只想做个不折不扣的乐天派
11-13 294
面向对象,是软件开发中的一类编程风格、开发范式。除了 面向对象 ,还有 面向过程 、 指令式编程 和函数式编程。面向过程的程序设计思想(Process-Oriented Programming),简称 POP关注的焦点是过程:过程就是操作数据的步骤。如果某个过程的实现代码重复出现,那么就可以把这个过程抽取为一个 函数。这样就可以大大简化冗余代码,便于维护。典型的语言:C语言代码结构:以函数为组织单位。是一种“ 执行者思维 ”,适合解决简单问题。扩展能力差、后期维护难度较大。
java学习笔记-基础知识-2023.3.29
fanhl的博客
03-29 2074
学习网站:https://www.sxt.cn/Java_jQuery_in_action/History_Direction.html 第一章 Java入门 计算机语言经历了三代:第一代是机器语言,第二代是汇编语言,第三代是高级语言 1.3.2 Java的核心优势–跨平台(JAVA虚拟机(JVM)是JAVA实现跨平台的核心) 1.3.3 Java各版本的含义 JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用 JavaEE(Java Enterprise Edit
Java学习java基础)-韩顺平老师
楠小弟的博客
02-18 7874
java基础学习笔记,mysql基础笔记
第二十讲 - Java时间类与包装类精讲
智潮先锋聚集地
04-25 312
深入探索Java世界,领略编程之美。从基础语法到高级特性,从实战案例到性能优化,《Java后端学习路线》专栏带你领略编程的无穷魅力。无论你是初学者还是资深开发者,这里都有适合你的精彩内容。让我们一起在Java的世界里,书写代码的传奇! 欢迎大家支持订阅本专栏,后续内容更加精彩。
Java基础笔记-上
m0_70414899的博客
03-05 755
此为2023年学习黑马的Java课程p1~p67所写笔记,编号01,记录部分内容方便日后回看,大家亦可参考。
----java基础 - 0基础 - 入门 - 新手专用
开开心心的博客
09-10 344
本文全面介绍了Java编程语言的最基础部分,从语法和语句,到多态创建对象、集合、反射、IO流和多线程等高级概念。每一部分都提供了详细的说明和相应的源代码案例。通过学习本文,读者将能够更快速地掌握Java编程,并扎实地理解这些关键概念。
1.第一章 计算机基础和Linux安装 -- 计算机基础(一)
Raymond的博客
12-01 867
基于电路设计的复杂性和成本考虑,对于当前计算机来讲,是基于二进制来处理数据的(未来或许不是这样,如量子计算机)。比如可以用高低电平,磁极的正反,光照的有无等分别表示1和0,相对其它进制更容易实现,成本也更低。进制数值表示英文简写特性二进制0、1BinaryBIN或B逢二进一八进制OctalOCT或O逢八进一十进制DecimalDEC或D逢十进一十六进制HEX或H逢十六进一表1-1 常见进制数值表示和特性那么什么是二进制呢?
成都2023年java基础代码学习记录
此标题表明了资料是关于Java基础代码的集合,且特别标注了时间(2023年)和地点(成都),这可能意味着该代码集合是为2023年在成都的学习或培训准备的。描述中提到的“仅用于个人学习的使用”表明该资源并非公开分享...
华清远见重庆中心--后端基础阶段技术总结/个人总结
m0_51516843的博客
02-26 391
Java基础技术总结
【愚公系列】《微信小程序开发解析》003-小程序框架(项目文件和逻辑层)
热门推荐
时光隧道
07-07 2万+
小程序框架是一种提供基础开发框架和工具的软件开发框架,用于简化和加速小程序应用程序的开发过程。小程序框架提供了一套规范和标准,帮助开发者快速构建小程序应用并管理应用的结构、数据流和页面之间的交互。
2024-10-16 学习人工智能的Day8
ctrey_的博客
10-16 488
内存分配:内存分配原理与改变拷贝类型的元素结果类似,在函数体中无声明的修改不可变值类似于numbers或者tuple这种,不会对原数据造成影响,只在函数作用域内生效,退出函数则删除指针。换行书写函数内部定义,在函数内部定义操作,最后函数自带返回,无定义返回值返回为None,有定义则返回为定义的返回表达式输出的值。返回值:在函数体内始终自带一个return,可以不定义,不定义输出None,可以定义,定义后输出为定义表达式。只做作用域本函数域,但是在最后会被直接删除,可变则作用域全局域,
React 进阶阶段学习计划
最新发布
简序
10-17 1378
自定义Hooks:用于提取组件逻辑,使代码更加模块化和复用。示例try {}, [url]);
《vue leaflet学习实践笔记》
yk_ddm的博客
10-16 318
目录vue leaflet学习实践笔记 vue leaflet学习实践笔记
Flythings学习(四)串口通信
Lmz_0314的博客
10-15 818
APP层在ProtocolSender.cpp,当APP层需要发送数据到MCU的时候直接调用sendprotocol函数,并在sendProtocol函数中实现。ProtocolParser:完成数据的协议解析部分,然后将解析号的数据放入ProtocolData中,同时管理了应用监听串口数据变化的回到接口。mProtocolData是UI界面默认的数据,在onUI_init的时候进行初始化,通过串口更新。tcflush是丢掉写入引用的对象,但是尚未传输的数据,或者收到但是尚未读取的数据。
如何快速上手学习API接口和应用开发
2401_84756425的博客
10-17 586
通过上述步骤,你可以快速上手学习API接口和应用开发,并逐步提升自己的技能水平。记住,实践是掌握技能的关键,所以要多动手实践,不断积累经验。
CASS**.*.*.*版本AutoCAD2010-2023安装教程及下载指南
资源摘要信息: "CASS**.*.*.*是为AutoCAD2010至2023版本提供的一个重要软件更新,这个版本是针对地理信息系统(GIS)专业领域的计算机辅助设计软件(CADD)软件的一个修订版。CASS**.*.*.*版本的推出,是基于之前...
写文章

热门文章

  • MD5加密解密 3445
  • Java中的Request和Response详解 1233
  • 2023.2.20~21——java基础语法的学习day1~day2 230
  • 2023.3.1--java基础语法学习day10--String字符串 201
  • JSP--2023/3/23-25 182

最新评论

  • 2023.2.20~21——java基础语法的学习day1~day2

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天最佳新人】榜单,全部的排名请看 https://bbs.csdn.net/topics/613557167。

最新文章

  • 数据库连接
  • js和ajax-2023/4/5
  • 登录逻辑关系
2023年30篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢雕塑陈设张掖抽象人物玻璃钢雕塑公司阜阳火烈鸟玻璃钢雕塑定制绵阳供应玻璃钢座椅雕塑深圳玻璃钢蚂蚱雕塑澳门欧式玻璃钢雕塑制作多少钱北流玻璃钢泡沫雕塑厂家北京大型主题商场美陈生产温州通用玻璃钢雕塑摆件徐汇区玻璃钢雕塑在线咨询石家庄市政玻璃钢雕塑推荐货源玻璃钢花盆的图周口不锈钢玻璃钢雕塑厂家昌邑玻璃钢气球雕塑新乡水景玻璃钢雕塑定制玻璃钢猪的雕塑玻璃钢园林不锈钢雕塑公司呼和浩特玻璃钢卡通雕塑制作北海玻璃钢泡沫雕塑公司龙井公园玻璃钢花盆重庆玻璃钢雕塑武汉广场玻璃钢雕塑生产厂家钦州玻璃钢雕塑用途河南艺术商场美陈价格玻璃钢雕塑安装案例仿真玻璃钢雕塑设计绍兴商场美陈厂家直销白银彩色玻璃钢雕塑厂家玻璃钢西方人物雕塑图片冰墩墩玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化