Java集合1——Collection

集合是一种容器,用来装数据,类似于数组,但是集合的大小可变,开发中也经常能用到,为了满足不同的业务场景需求,JAVA还提供了不同特点的集合。

集合体系结构:单列集合(Collection)每个元素只包含一个值、双列集合(Map)每个元素包含两个值,又称为键值对。

一、Collection介绍

单列集合体系Collection<E>:

常用的两个接口:List<E>、Set<E>

List<E>又分为一些实现类比如ArrayList和LinkedList<E>

Set<E>分为一些实现类比如HashSet<E>、TreeSet<E>

二、Collection集合的特点

List系列集合:添加的元素有序、可重复、有索引。

Set系列集合:提那家的元素无序、不重复、无索引。(LinkedHashSet是有序的,TreeSet按照大小默认升序排序)。

public class Test1 {
    public static void main(String[] args) {
        //简单确认一下Collection集合的特点
        ArrayList<String> list = new ArrayList<>();
        list.add("一");
        list.add("一");
        list.add("一");
        list.add("二");
        list.add("二");
        System.out.println(list);  //有序,可重复,有索引

        HashSet<String> set = new HashSet<>();
        set.add("111");
        set.add("333");
        set.add("222");
        set.add("333");
        set.add("111");
        System.out.println(set);  // 无序 不重复 无索引
        
    }
}

三、Collection的常用方法

Collection是但列举集合的祖宗,它规定的方法(功能)是全部单列集合都会继承的。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class Teest2 {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>(); //多态写法
        //1.添加元素,添加成功返回true
        c.add("1");c.add("2");c.add("2");
        System.out.println(c);
        //2.清空集合
        c.clear();
        System.out.println(c);
        //3.判断是否为空,是空返回true
        System.out.println(c.isEmpty());
        //4.获取集合的大小
        c.add("44");
        System.out.println(c.size());
        //5.判断是否包含某个元素
        System.out.println(c.contains("44"));
        //6.删除某个元素:如果有多个默认删除第一个,删除成功返回true
        System.out.println(c.remove("44"));
        System.out.println(c);
        c.add("55");
        //7.public Object[] toArray():把集合转换成数组
        Object[] o = c.toArray();
        System.out.println(Arrays.toString(o));
        String[] s = c.toArray(new String[c.size()]); //指定类型数组
        System.out.println(Arrays.toString(s));
        //8.把一个集合的全部数据放入另一个集合
        Collection<String> c1 = new ArrayList<>();
        c1.add("111");
        c1.add("222");
        Collection<String> c2 = new ArrayList<>();
        c2.add("121");
        c2.add("212");
        c1.addAll(c2); //就是把c2集合的全部数据倒入到c1集合中去(数据类型得一样)
        System.out.println(c1);
        System.out.println(c2); //c2数据不变
    }
}

四、Collection的遍历方式

(一)迭代器

迭代器是用来遍历集合的专用方式(数组没有迭代器),Iterator

Collection集合获取迭代器的方法:Iterator<E> iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的第一个元素。

Iterator迭代器中的常用方法:boolean hasNext() 询问当前位置是否有元素存在

E next() 获取当前位置的元素,并同时将迭代器对象指向下一个元素处

(二)增强for循环

for(元素的数据类型 变量名:数组或集合){

   }

增强for可以用来遍历集合或者数组

在idea中可以直接.for然后回车

(三)使用Lambda表达式

需要使用Collection提供的方法结合lambda遍历集合:

逐步简化

五、遍历集合中的自定义对象

public class Movie {
    private String name;
    double score ;
    private String actor;

    public Movie(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    @Override
    public String toString() {
        return "Movie{" +
                "name='" + name + '\'' +
                ", score=" + score +
                ", actor='" + actor + '\'' +
                '}';
    }

    public Movie() {
    }

    public String getName() {
        return name;
    }

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

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }
}
import java.sql.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Test5 {
    public static void main(String[] args) {
        //1.创建一个集合容器负责存储多个电影对象
        Collection<Movie> mm = new ArrayList<Movie>();
        mm.add(new Movie("电影1",1,"演员1"));
        mm.add(new Movie("电影2",2,"演员2"));
        mm.add(new Movie("电影3",3,"演员3"));
        mm.add(new Movie("电影4",4,"演员4"));
        System.out.println(mm);
        for (Movie a : mm) {
            System.out.println(a.getName());
            System.out.println(a.getActor());
            System.out.println(a.getScore());
            System.out.println("------------");
        }

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

何仙鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值