Java集合的概念学习(1)

1:集合的概念,对象的容器,实现了对对象的操作,类似数组功能

2:集合与数组的区别
(1)数组的长度固定,集合的长度不固定
(2)数组可以存储基本类型和引用类型,集合只能存储引用类型

3:集合的作用
(1)在类的内部,对数据进行组织
(2)简单而快速的搜索大数量的条目
(3)有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关的元素
(4)有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以使任意类型

4:集合框架主要组成部分
在这里插入图片描述
5:Collection接口的使用
(1)集合的使用步骤
集合的使用步骤:
1、创建集合对象
2、创建元素对象
3、把元素添加到集合
4、遍历集合
a、通过集合对象获取迭代器
b、通过迭代器hasNext()方法判断是否有元素
c、通过迭代器对象的next()方法获取元素并移动到下一个位置

(2)Collection接口里定义了如下操作集合的方法:
1、boolean add(Object o):向集合里添加一个元素,成功添加则返回true。
2、boolean addAll(Collection c):把集合c里的所有元素添加到指定集合里,成功添加,返回true。

3、void clear():清除集合里的所有元素,将集合长度变为0。

5、boolean contains(Object o):判断集合中是否包含指定元素
6、boolean containsAll(Collection c):判断集合中是否包含集合c中的所有元素。

7、boolean isEmpty():判断集合是否为空。为空的时候返回true,否则返回false

8、boolean remove(Object o):删除集合中指定的o元素,当集合中含有多个o元素的时候,只删除第一个符合条件的元素,并将返回true
9、boolean removeAll(Collection c):从集合中删除集合c里包含的所有元素(相当于调用该方法的集合 - 集合c)

10、boolean retainAll(Collection c):从集合中删除集合c里不包含的元素(也就是把调用该方法的集合变成该集合和集合c的交集)(交集方法)。
11、int size():返回集合里元素的个数
12、Object[] toArray():该方法把一个集合转换为数组,所有的集合元素变成对应的数组元素

(3)接下来上实例
(1)先创建一个学生类

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
*
 * * 学生类
*
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Student {
    private  String name;
    private  Integer age;

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

//设置get、set方法
//    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 + "]";
//    }
}

(2)在来写Collection的使用方法

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

/**
 * Collection的使用:保存学生信息
 */
public class Demo1 {
    public static void main(String[] args){
        //新建Collection对象
//        Collection collection = new ArrayList();
        List<Student> list = new ArrayList<>(16);
        Student s1=new Student("张三",20);
        Student s2=new Student("李四",20);
        Student s3=new Student("王五",20);
        //添加数据
        list.add(s1);
        list.add(s2);
        list.add(s3);
        //遍历个数
        System.out.println("元素个数:" + list.size());
        System.out.println(list.toString());

        //迭代器,迭代过程中不能使用Collection的删除方法
        Iterator<Student> it = list.listIterator();
        while (it.hasNext()) {
            Student next = it.next();
            System.out.println(next);
        }
        System.out.println("-----------------------------");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("-----------------------------");

        //增强for
        for (Student student : list) {
            System.out.println(student);
        }

        System.out.println("-----------------------------");
        list.forEach(System.out::println);

        //Collection -> List 单列集合 ArrayList,LinkedList, Set: HashSet,TreeSet, ,Map HashMap TreeMap Vector
        //删除

    }

}

(3)运行结果
元素个数:3
[Student(name=张三, age=20), Student(name=李四, age=20), Student(name=王五, age=20)]
Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)

Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)

Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)

Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杭州小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值