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

第9章 集合

第9章 集合

Java中数组的长度是不可修改的,为了保存数据量不确定的数据,以及具有映射关系的数据,Java提供了集合。

Colection接口是List、Set、Queue接口的父接口。

1、List集合

List是一个有序的,可重复的集合;主要有两个实现类:ArrayList、LinkedList

(1)ArrayList
e.g.
import java.util.ArrayList;

public class Demo1 {
    public static void main(String[] args) {
        ArrayList al = new ArrayList();
        al.add(25); // 添加元素
        al.add('A');
        al.add("abc123");
        al.add('A');
        al.remove(1); // 删除元素

        for(Object x :al){
            System.out.println(x);
        }
    }
}
(2)LinkedList
e.g.
import java.util.Iterator;
import java.util.LinkedList;

class Student{
    private String name;
    private int age;

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

    @Override
    public String toString() {
        return "Student[name:"+this.name+", age:"+this.age+"]";
    }
}
public class Demo2 {
    public static void main(String[] args) {
        LinkedList ll = new LinkedList();
        Student s1 = new Student("张三",19);
        ll.add(s1);
        ll.add(new Student("李四",20));
        ll.add("字符串");
        
//        for(int i=0;i<ll.size();i++){
//            System.out.println(ll.get(i));
//        }

        // 使用迭代器对LinkedList进行遍历
        Iterator it = ll.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }
}

PS:ArrayList和LinkedList的区别:
①实现List接口的方式不同;
②ArrayList是基于动态数组结构的实现,访问元素的速度优于LinkedList;LinkedList是基于链表数据结构实现,占用内存空间较大,在批量插入或删除数据时优于ArrayList.

2、Set集合

Set是一个无序的,不可重复的集合;主要有两个实现类:HashSet、TreeSet.

(1) HashSet

e.g.
import java.util.HashSet;
public class Demo3 {
    public static void main(String[] args) {
        HashSet hs = new HashSet();
        hs.add('A'); // 添加元素
        hs.add('B');
        hs.add(25);
        hs.add('A'); // 添加重复的元素
        hs.remove('A'); // 删除元素

        for(Object x : hs){
            System.out.println(x);
        }
    }
}

(2) TreeSet

e.g.
import java.util.TreeSet;

public class Demo4 {
    public static void main(String[] args) {
        TreeSet ts = new TreeSet();
        ts.add('a');
        ts.add('b');
        ts.add('3');
        ts.add('3');
        for(Object x: ts){
            System.out.println(x);
        }
    }
}

3、Map集合

Map是一种键值对(key-value)集合,用于保存具有映射关系的数据;实现类有两个:HashMap、TreeMap.

(1)HashMap

e.g.
import java.util.HashMap;
import java.util.Iterator;

public class Demo4 {
    public static void main(String[] args) {
        HashMap hm = new HashMap();
        for(int i = 'A';i<='Z';i++){
            hm.put((char)i,i);
        }

        Iterator it = hm.keySet().iterator();
        while (it.hasNext()){
            Object k = it.next();
            Object v = hm.get(k);
            System.out.println(k+":"+v);
        }
    }
}

(2)TreeMap

TreeMap类的使用方法和HashMap相同,不同的是Treemap类可以对键对象进行排序。

相关文章:

  • RfDNet 在Ubuntu16下的配置与运行——(二)数据准备与训练
  • 前端Gitee + Jenkins自动化实战(转)
  • 【Android Studio程序开发】按钮触控---按钮控件Button
  • 《棒球大联盟2nd》:热血拼搏·棒球1号位
  • 计算机、软件专业常去的学习网站
  • 5 年经验年薪百万,一位阿里 P8 分享自己的成长干货
  • 【C++笔试强训】第三天
  • brew换源
  • G银行借助光伏互联网平台发展户用光伏金融业务,加速绿色转型 | 案例研究
  • JAVA基础语法以及一些常见的练习
  • 如何在 Spring Boot 项目中使用 Thymeleaf 和 Bootstrap 实现文件上传
  • 智能电销机器人《各版本机器人部署》
  • 微信小程序的生命周期概览
  • 【华为上机真题 2022】数组组成的最小数字
  • Pr:导出设置之音频
  • html实训大作业《基于HTML+CSS+JavaScript红色文化传媒网站(20页)》
  • [LeetCode 1775]通过最少操作数使数组的和相等
  • js实现的在线绘图板,写字板
  • 迷宫逃离的问题-CoCube
  • 数据结构与算法(Java版) | 几个经典的算法面试题(上)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉