关于java对象数组(全)

1 简单对象数组的构造与使用

1.1 Practice类

//Practice.java
package Object;
/**
  把5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。
  *         学生:Student
  *         成员变量:name,age
  *         构造方法:无参,带参
  *         成员方法:getXxx()/setXxx()
  * 分析:
  *         A:创建学生类。
  *         B:创建学生数组(对象数组)。
  *         C:创建5个学生对象,并赋值。
  *         D:把C步骤的元素,放到数组中。
  *         E:遍历学生数组。
  **/

public class Practice {
    public static void main(String[] args){
        //创建学生数组(对象数组)
        Student[] students = new Student[5];
        //
        //
        //
        //
        //

        //创建5个学生对象,并赋值
        Student s1 = new Student("小明", 27);
        Student s2 = new Student("小红", 30);
        Student s3 = new Student("小强", 30);
        Student s4 = new Student("旺财", 12);
        Student s5 = new Student("张三", 35);

        //将对象放入数组中
        students[0] = s1;
        students[1] = s2;
        students[2] = s3;
        students[3] = s4;
        students[4] = s5;

        //遍历
        for (int x = 0;x < students.length;x++){
            //

            Student s = students[x];
            System.out.println(s.getName() + "---" + s.getAge());
        }
    }
}

1.2 Student.java

//Student.java
package Object;

public class Student {
    //成员变量
    private String name;
    private int age;

    //构造方法
    public Student(){
        super();
    }

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

    //成员方法
    //getXxx()/setXxx()
    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;
    }

    @Override
    public String toString(){
        return "Student [name=" + name + ",age=" + age + "]";
    }
}


1.3 关于简单对象数组的内存图解

在这里插入图片描述

2 高级对象数组::集合简介

2.1 集合的由来及数组的区别

  1. 由来:面向对象语言都是以对象的形式, 为方便对多个对象的操作,java提供了集合类
  2. 区别:
  • 数组可以存储同一类型的基本数据也可以存储.同一类型的对象,但长度是固定的
  • 集合可以存储不同类型的对象,集合长度可变,可以存储不同类型的对象

2.2 框架的顶层Collection接口

在这里插入图片描述

2.3 Collection集合的功能概述

  • Collection是层次结构中的根接口。
  • Collection 表示一组对象,这些对象也称为 collection 的元素。
  • 一些 collection 允许有重复的元素,而另一些则不允许。
  • 一些 collection 是有序的,而另一些则是无序的。
  • JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现。
  • 此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。

2.4 Collection集合的基本功能测试

2.4.1 成员方法介绍

//确保此Collection包含指定的元素(可选操作)
boolean add(E e)

//从此lollection中移除指定元素的单个实例,如果存在的话(可选操作)
boolean remove(Object o)

//移除此collection中的所有元素(可选操作)
void clear() 

//如果此collection包含指定的元素,则返回true
boolean contains(Object o)

//如果此collection不包含元素,则返回true
boolean isEmpty()

//返回此collection中的元素数
int size()

2.4.2 基本功能测试

//
package Collection_1;

import javax.swing.*;
import java.util.ArrayList;
import java.util.Collection;

public class test_collection {
    public static void main(String[] args){
        // 创建集合对象
        //Collection c = new Collection();
        //错误,因为接口不可以实例化
        Collection c = new ArrayList();
        c.add("hello");
        c.add("world");
        c.add("java");

        //c.clear();
        //移除所有元素
        System.out.println("remove:" + c.remove("hello"));
        System.out.println("remove:" + c.remove("javaee"));

        //判断集合中是否包含指定的元素
        System.out.println("contains:" + c.contains("hello"));
        System.out.println("contains:" + c.contains("android"));
        //判断集合是否为空
        System.out.println("isEmpty:" + c.isEmpty());
        //元素的个数
        System.out.println("size:" + c.size());
        System.out.println("c:" + c);
        
    }
}


2.5 Collection集合的高级功能测试

2.5.1 成员方法介绍

//将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
boolean addAll(Collection<? extends E>c):

//移除此 collection 中那些也**包含在指定 collection 中的所有元素**(可选操作)。
boolean removeAll(Collection<?> c):

//如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean containsAll(Collestion<?> c):

//仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。
boolean retainAll(Collection<?> c):

2.5.2 基本功能测试

c1.addAll(c2);//将c2集合中的所有元素添加到c1集合中,c1变c2不变

c1.removeAll(c2);//将c1集合中与c2集合相同的所有元素删除,只要有一个相同的就返回true

c1.containsAll(c2);//判断c1集合中的元素是否包含c2中的全部元素,全部包含则返回true

c1.retainAll(c2);//将c1集合中与c2集合相同的元素保留,删除其他元素,返回值表示c1集合是否发生变化,发生变化返回true,没有变化返回false

还有一些没补充完整,先这样,够写项目了,待补充

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值