云计算百科
云计算领域专业知识百科平台

Java中集合

集合

文章目录

  • 集合
    • 1.集合基础
      • 1.1集合概述
      • 1.2 ArrayList 构造方法和添加方法
      • 1.3 ArrayList成员方法
      • 1.3.1 基本数据类型对应的包装类
      • 1.4 练习
        • 1.4.1
        • 1.4.2
        • 1.4.3
        • 1.4.4
        • 1.4.5
        • 1.4.6
        • 1.4.7
        • 1.4.8
        • 1.4.9

1.集合基础

1.1集合概述

集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变集合类有很多

ArrayList:

  • 可调整大小的数组实现
  • :是一种特殊的数据类型,泛型。

怎么用? 在出现E的地方我们使用引用数据类型替换即可 举例:ArrayList , ArrayList

1.2 ArrayList 构造方法和添加方法

方法名说明
public ArrayList() 创建一个空的集合对象
public boolean add(E e) 将指定的元素追加到次集合的末尾
public void add(int index , E element) 在此集合中的指定位置插入指定的元素

集合和数组的对比

  • 数组长度固定 可以存基本数据类型 可以引用数据类型
  • 集合长度可变 **可以存引用类型数据 ** 基本数据类型——>包装类
  • 1.3 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 Gather;

    import java.util.ArrayList;

    //增删改查
    /*

    boolean add(E e) 添加

    boolean remove(Ee) 删除
    E remove(int index)

    E set(int index,E e) 修改

    E get(int index) 查询
    int size() 获取长度

    */
    public class ArrayListdemo02 {
    public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<>();
    //增
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    list.add("ddd");
    System.out.println(list);
    //删
    boolean result1= list.remove("aaa");
    System.out.println(list);
    String st=list.remove(1);
    System.out.println(st);
    //改
    /*String result2 =*/list.set(1,"fff");
    System.out.println(list);

    //查
    String s=list.get(0);
    System.out.println(s);

    //遍历
    for (int i = 0; i < list.size(); i++) {
    //i索引
    //list.get(i) 元素
    String s1= list.get(i);
    System.out.println(s1);

    }

    }

    }

    运行结果

    在这里插入图片描述

    遍历

    在这里插入图片描述

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

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

    byteByte
    short Short
    char Character
    int Integer
    long Long
    float Float
    double Double
    boolean Boolean

    1.4 练习

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

    import java.util.ArrayList;

    public class ArrayListdemo03 {
    public static void main(String[] args) {
    //1.创建数组
    ArrayList<String> list = new ArrayList<>();

    //2.增加数组
    list.add("你在干嘛");
    list.add("点赞了吗");
    list.add("转发了吗");
    System.out.print("[");

    //3.遍历
    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("]");
    }
    }

    运行结果

    在这里插入图片描述

    1.4.2
  • 练习
  • 添加数字并遍历 需求:定义一个集合,添加数字,并进行遍历。 遍历格式参照:[元素1,元素2,元素3]。

    package Gather;
    //添加数字并遍历 需求:定义一个集合,添加数字,并进行遍历。
    //遍历格式参照:[元素1,元素2,元素3]。
    import java.util.ArrayList;

    public class test1 {
    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("[");
    //3.遍历数组
    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("]");

    }
    }

    运行结果

    在这里插入图片描述

    1.4.3

    3.练习

    package Gather;

    import java.util.ArrayList;

    public class test2 {
    public static void main(String[] args) {
    ArrayList<Character> list = new ArrayList<>();
    //add
    list.add('a');
    list.add('b');
    list.add('c');
    list.add('d');
    list.add('e');
    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("]");

    }
    }

    运行结果

    在这里插入图片描述

    1.4.4

    4.练习

    需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。

    package Gather;
    //javabean
    //1.私有化成员变量
    // 2.空参构造方法
    // 3.带全部参数的构造方法
    // 4.get/set方法

    public class Student {

    private String name;
    private int age;
    public Student(){

    }

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

    public int getAge() {
    return age;
    }

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

    public String getName() {
    return name;
    }

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

    package Gather;

    import java.util.ArrayList;

    //需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。
    public class test3 {
    public static void main(String[] args) {
    //1.创建集合
    ArrayList<Student> list = new ArrayList<>();

    //2.添加学生对象
    Student s1 = new Student("赵",11);
    Student s2 = new Student("钱",12);
    Student s3 = new Student("孙",13);
    Student s4 = new Student("李",14);

    //3.添加元素
    list.add(s1);
    list.add(s2);
    list.add(s3);
    list.add(s4);

    //4.遍历
    for (int i = 0; i < list.size(); i++) {
    //i 索引 list.get(i) 元素/学生对象
    Student stu = list.get(i);
    System.out.println(stu.getName()+","+stu.getAge());
    }
    }
    }

    运行结果

    在这里插入图片描述

    1.4.5

    5.练习

    package Gather;

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

    public class test4 {
    public static void main(String[] args) {
    //1.创建集合
    ArrayList<Student> list = new ArrayList<>();

    //2.键盘录入学生的信息并添加到集合当中
    Scanner scanner = new Scanner(System.in);

    for (int i = 0; i < 3; i ++) {
    //对象类型 对象名=对象值
    Student s= new Student();
    System.out.println("请输入学生姓名");
    String name = scanner.next();
    System.out.println("请输入年龄");
    int age= scanner.nextInt();

    //把name和age赋值给学生对象
    s.setAge(age);
    s.setName(name);

    //把学生对象添加到集合中
    list.add(s);

    //遍历

    }
    for (int i1 = 0; i1 < list.size(); i1++) {
    //数据类型Student 变量名stu
    //list 类型的集合 从list集合中 取出索引为i1的元素 ,把他强制转换为Student类型 然后赋值给变量stu(用stu接收这个对象)
    Student stu=list.get(i1);
    System.out.println(stu.getName()+","+stu.getAge());
    }
    System.out.println(list.size());
    }

    }

    运行结果

    在这里插入图片描述

    1.4.6

    6.练习

    需求: 1,main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的用户信息, 如果存在,返回true 如果不存在,返回false

    package Gather;
    //1.私有化成员变量
    // 2.空参构造方法
    // 3.带全部参数的构造方法
    // 4.get/set方法

    public class User {

    private String id;
    private String name;

    private int password;

    public User(String id, String name, int password) {

    this.id = id;
    this.name = name;
    this.password = password;
    }

    public String getId() {
    return id;
    }

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

    public String getName() {
    return name;
    }

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

    public int getPassword() {
    return password;
    }

    public void setPassword(int password) {
    this.password = password;
    }
    }

    package Gather;

    import java.util.ArrayList;

    //添加用户对象并判断是否存在
    //需求:
    //1,main方法中定义一个集合,存入三个用户对象。
    //用户属性为:id,username,password
    //2,要求:定义一个方法,根据id查找对应的用户信息,
    //如果存在,返回true
    //如果不存在,返回false
    //
    public class test5 {
    public static void main(String[] args) {
    //1.创建数组
    ArrayList<User> list = new ArrayList<>();

    //2.创建三个用户对象
    User u1 = new User("10001", "zhao", 123456);
    User u2 = new User("10002", "zhang", 1234567);
    User u3 = new User("10003", "li", 1234561);

    //3.把用户对象添加到集合中去
    list.add(u1);
    list.add(u2);
    list.add(u3);

    //4.调用方法查看id是否存在

    boolean flag=contains(list,"10001");
    //5.打印结果

    }

    //1.我要干嘛 根据id查找用户
    //2.我干这件事需要什么才能完成 在list中找id
    //3.调用处是否需要使用方法的结果 返回
    public static boolean contains(ArrayList<User> list,String id){
    for (int i = 0; i < list.size(); i++) {
    User u= list.get(i);//拿到集合里面每一个用户
    String uid= u.getId();//调用 id ,把id拿出来

    //将uid和要查找的id作比较
    if (uid.equals(id)){
    return true;
    }
    }
    return false;
    }
    }

    运行结果

    在这里插入图片描述

    1.4.7

    7.练习

    需求: 1,main方法中定义一个集合,存入三个用户对象。

    ​ 用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回索引 如果不存在,返回-1

    package Gather;
    //需求:
    //1,main方法中定义一个集合,存入三个用户对象。
    //
    //用户属性为:id,username,password
    //2,要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回索引
    //
    //如果不存在,返回-1

    import java.util.ArrayList;

    public class test6 {
    public static void main(String[] args) {
    //1.创建数组
    ArrayList<User> list = new ArrayList<>();

    //2.创建三个用户对象
    User u1 = new User("10001", "zhao", 123456);
    User u2 = new User("10002", "zhang", 1234567);
    User u3 = new User("10003", "li", 1234561);

    //3.把用户对象添加到集合中去
    list.add(u1);
    list.add(u2);
    list.add(u3);

    //4.查找索引
    int Index=getIndex(list,"10001");
    System.out.println(Index);
    }
    // 集合 要查找的id
    public static int getIndex(ArrayList<User> list,String id){
    for (int i = 0; i < list.size(); i++) {
    User u=list.get(i);//拿到集合里面每一个用户
    String uId=u.getId();//调用 id ,把id拿出来
    //将uId和要查找的id作比较
    if (uId.equals(id)){
    return i;
    }

    }
    return 1;
    }
    }

    运行结果

    在这里插入图片描述

    1.4.8

    8.练习

    添加手机对象并返回要求的数据 需求: 定义Javabean类:Phone Phone属性:品牌,价格。 main方法中定义一个集合,存入三个手机对象。 分别为:小米,1000。苹果,8000。锤子2999. 定义一个方法,将价格低于3000的手机信息返回

    package Gather;
    //javabean
    //1.私有化成员变量
    // 2.空参构造方法
    // 3.带全部参数的构造方法
    // 4.get/set方法

    //Phone属性:品牌,价格。

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

    import java.util.ArrayList;

    //添加手机对象并返回要求的数据
    //需求:
    //定义Javabean类:Phone
    //Phone属性:品牌,价格。
    //main方法中定义一个集合,存入三个手机对象。
    //分别为:小米,1000。苹果,8000。锤子2999.
    //定义一个方法,将价格低于3000的手机信息返回
    public class test7 {
    public static void main(String[] args) {
    //1.创建数组
    ArrayList<Phone> list = new ArrayList<>();
    //2.存入对象
    Phone p1 = new Phone("xiaomi", 1000);
    Phone p2 = new Phone("iphone", 8000);
    Phone p3 = new Phone("chuizi", 2999);

    //3.添加到数组中
    list.add(p1);
    list.add(p2);
    list.add(p3);
    //4.调用
    // GetPhoneInfo(list);
    ArrayList<Phone> phoneInfoList = GetPhoneInfo(list);
    //5.遍历集合
    for (int i = 0; i < phoneInfoList.size(); i++) {
    Phone phone = phoneInfoList.get(i);
    System.out.println(phone.getBrand()+","+phone.getPrice());
    }
    }
    //1.我要干嘛 根据价格返回手机信息
    //2.我干这件事需要什么才能完成 在list中找低于3000价格的手机
    //3.调用处是否需要使用方法的结果 返回

    //技巧
    //如果我们要返回多个数据,可以把这些数据放到一个容器当中,再把容器返回
    //集合 数组

    //public static void GetPhoneInfo(ArrayList<Phone> list){
    public static ArrayList<Phone> GetPhoneInfo(ArrayList<Phone> list){
    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){
    // System.out.println(p.getBrand()+","+p.getPrice());
    resultList.add(p);
    }

    }return resultList;
    }
    }

    运行结果

    在这里插入图片描述

    1.4.9

    晚上好

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Java中集合
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!