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

集合的概念及练习

1. 为什么要有集合?

1.集合存储长度不固定,数组长度固定

2.存储数据类型,数组可以存储基本数据类型和引用数据类型。

集合可以存储引用数据类型,当要存储基本数据类型时,要转化为包装类

2. 集合

ArrayList 类
   创建类: ArrayList<String> list = new ArrayList<>();
方法名:
    Bollean add(E e)        添加元素,返回值表述是否添加成功
    根据删除元素值,或者索引值进行删除
    Bollean remove(E e)        删除指定元素。返回值表示是否删除成功
    E remove(int index)        删除指定索引的元素,返回被删除元素
    修改元素,根据索引值
    E set(int index,E,e)    修改指定索引下的元素,返回原来的元素
    查询元素,根据索引查询元素
    E get(int index)        获取指定索引的元素
    int size()                集合的长度,也就是集合中元素的个数
    

import java.util.ArrayList;

public class ArrayListDemo1 {
    public static void main(String[] args) {
        //1.创建集合的对象
        //泛型:限定集合中存储数据的类型
        //JDK7以前
        //ArrayList<String> list = new ArrayList<String>();
        //JDK7以后
        ArrayList<String> list = new ArrayList<>();
        //打印对象不是地址值,而是集合中存储数据内容
        //在展示的时候会拿[]把所有的数据进行包裹
        System.out.println(list);

        //1.添加元素
        list.add("Hello");
        list.add("He");
        list.add("Hel");
        System.out.println(list);

        //2.删除元素
        list.remove("He");
        System.out.println(list);
        list.remove(0);
        System.out.println(list);

        //3.修改元素
        String result = list.set(0,"bbb");
        System.out.println(result);
        System.out.println(list);

        //4.查询元素
        String s = list.get(0);
        System.out.println(s);

        //5.遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}

3. 集合的综合练习

3.1 添加字符串和整数并遍历

需求:定义一个集合,添加字符串,并进行遍历
遍历格式参照:[元素1,元素2,元素3]

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        /*
        需求:定义一个集合,添加字符串,并进行遍历
        遍历格式参照:[元素1,元素2,元素3]
         */

        //1.创建集合
        ArrayList<String> list = new ArrayList<>();
        //2.添加元素
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");
        //3.遍历
        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.print("]");


    }
}

需求:定义一个集合,添加数字,并进行遍历
遍历格式参照:[元素1,元素2,元素3]
基本数据类型对应的包装类
byte        Byte
short        Short
char        Character
int            Integer
long        Long
float        Float
double        Double
boolean        Boolean

import java.util.ArrayList;

public class ArrayListDemo3 {
    public static void main(String[] args) {
        /*
        需求:定义一个集合,添加数字,并进行遍历
        遍历格式参照:[元素1,元素2,元素3]
         */
        //1.定义集合
        ArrayList<Integer> list = new ArrayList<>();
        //2.添加元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        //3.遍历元素
        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.print("]");
    }
}

3.2 添加学生对象并遍历

import java.util.ArrayList;

public class ArrayListDemo4 {
    public static void main(String[] args) {
        /*
        需求:定义一个集合,添加一些学生对象,并进行遍历
        学生类的属性为:姓名,年龄。
         */
        //1.创建集合
        ArrayList<Student> list = new ArrayList<>();
        //2.创建学生对象
        Student s1 = new Student("jam",12);
        Student s2 = new Student("jane",18);
        Student s3 = new Student("bug",22);
        //3.添加学生对象
        list.add(s1);
        list.add(s2);
        list.add(s3);
        //4.遍历集合
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName() + ", " + stu.getAge());
        }
        }
    }
import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListDemo5 {
    public static void main(String[] args) {
        /*
        需求:定义一个集合,添加一些学生对象,并进行遍历
        学生类的属性为:姓名,年龄。
        要求:对象的数据来自键盘输入
         */
        //1.创建集合
        ArrayList<Student> list = new ArrayList<>();
        //长度为0
        //键盘录入信息
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            Student s = new Student();
            System.out.println("请输入学生姓名:");
            String name = sc.next();
            s.setName(name);
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            s.setAge(age);
            //将学生信息添加到集合中
            list.add(s);
        }
        //输出学生信息
        System.out.println("学生信息如下:");
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            System.out.println(s.getName() + "," + s.getAge());
        }
    }
}

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

import java.util.ArrayList;

public class ArrayListDemo6 {
    public static void main(String[] args) {
        /*
        需求:1.main方法中定义一个结合,存入三个用户对象
        用户属性为:id,username,password
        要求:定义一个方法,根据id查找对应的用户信息
        如果存在,返回true
        如果不存在,返回false
         */
        //1.创建集合
        ArrayList<User> list = new ArrayList<>();
        //2.创建用户
        User u1 = new User("001","heima","123456");
        User u2 = new User("002","heim","12345678");
        User u3 = new User("003","hei","123qwe");
        //3.将用户添加到集合中
        list.add(u1);
        list.add(u2);
        list.add(u3);
        //4.调用方法,检查id是否存在
        boolean flag = contains(list,"001");
        System.out.println(flag);

    }
    //创建方法,查找是否有对应ID
    public static Boolean contains(ArrayList<User> list, String id) {
        for (int i = 0; i < list.size(); i++) {
            if(id.equals(list.get(i).getId())){
                return true;
            }
        }
        return false;
    }
}

3.4 返回多个数据

import java.util.ArrayList;

public class ArrayListDemo7 {
    public static void main(String[] args) {
        /*
        需求:
        定义JAVAbean类:Phone
        Phone属性:品牌,价格
        main方法中定义一个集合,存入三个手机对象
        定义一个方法,将价格低于3000的手机信息返回。
         */
        //1.创建集合
        ArrayList<Phone> list = new ArrayList<>();
        //2.创建手机对象
        Phone p1 = new Phone("iphone",9999);
        Phone p2 = new Phone("vivo",2999);
        Phone p3 = new Phone("xiaomi",1999);
        //3.将对象,添加到集合中
        list.add(p1);
        list.add(p2);
        list.add(p3);
        //4.调用方法
        ArrayList<Phone> result = getPhoneInfo(list);
        for (int i = 0; i < result.size(); i++) {
            Phone p = result.get(i);
            System.out.println(p.getBrand() + "," + p.getPrice());
        }

    }
    //创建方法,寻找价格低于3000的手机对象并返回
    //如果我们要返回多个数据,可以把这些书库先放到一个容器当中,再把容器返回
    //容器:集合,数组。像比较集合更适合当作容器
    public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list) {
        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.kler.cn/a/401447.html

相关文章:

  • 软件测试基础三十 (Python + Flask实现Mock平台搭建)
  • DataOps for LLM 的数据工程技术架构实践
  • 统信UOS开发环境支持Golang
  • 【Redis】使用redis实现登录校验功能
  • 【GNU】gcc -g编译选项 -g0 -g1 -g2 -g3 -gdwarf
  • Datawhale组队学习】模型减肥秘籍:模型压缩技术3——模型量化
  • 炼码LintCode--数据库题库(级别:中等;数量:更新中~)--刷题笔记_03
  • 【Three.js基础学习】26. Animated galaxy
  • Dubbo源码解析-服务导出(四)
  • chatGPT是如何使用tensrFlow训练模型的?
  • 【数据分享】1981-2024年我国逐日最低气温栅格数据(免费获取)
  • CSS3中的弹性布局之侧轴的对齐方式
  • 梧桐数据库深入探索递归查询的强大功能
  • Excel——宏教程(精简版)
  • EMall实践DDD模拟电商系统总结
  • 学习整理在php中一个二维数组按另一个一维数组顺序排序
  • 【OpenCV】Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
  • C++ 对函数的详细记录 【雨露均沾】
  • 【UGUI】Unity 游戏开发:背包系统初始化克隆道具
  • CFD 应用于分离过程:旋风分离器(第 2 部分)
  • 服务器上Cuda+Pytorch兼容性的那些问题
  • 鸿蒙学习生态应用开发能力全景图-鸿蒙开发套件(2)续集 OS 开放能力集
  • 跨平台WPF框架Avalonia教程 二
  • Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找
  • 【leetcode 02】27. 移除元素
  • Three.js PBR材质