资讯专栏INFORMATION COLUMN

java集合

zxhaaa / 2645人阅读

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

为何选择集合而不是数组
数组长度固定,集合长度可变
数组只能通过下标访问,类型固定,而集合可以通过任意类型查找所映射的具体对象

collection map 是接口

Collection 接口,子接口以及实现类
Collection接口
1,是list set和queue接口的父接口
2,定义了可用于操作list set和queue的方法-增删改查

List接口以及实现类-ArrayList
1,List是元素有序并且可以重复的集合,被称为序列
2,list可以精确的控制每一个元素的插入位置,或删除某一个元素
3,ArrayList-数组序列,是list的一个重要实现类。
4,ArrayList底层是由数组实现的。

如何通过迭代器来遍历List
Iterator it =

            selectedCourses.iterator();
    while(it.hasNext()){
        course cr = (course) it.next();
        System.out.println(cr.id+","+cr.name);
    }

更改集合内容
selectedCourses.set(0, new course("5","michael"));

泛型中的元素,可以是任意类型的对象,(对象的引用)
如果把某个对象放入集合,则会忽略它的类型,把它当作object类处理
泛型规定某个集合只可以存放特定类型的对象,会在编译期间对其进行检查

set是元素无序并且不可重复的集合,被称为集
HashSet 是set的一个重要的实现类,哈希集 (无序并且不可重复)

因为set是无序的,所以不能用 List的get方法遍历取值,每一次遍历拿出来的都是不一样的值


在map中key值是不可以重复的,但是value值是可以重复的

每一个键key最多只能映射到一个值value
Map接口提供了分别返回key值集合,value值集合以及entry 键值对集合的方法
Map支持泛型,形如 Map


keyset集合;
Set keyset = student.keySet();

entry键值对
Set> entry = student.entrySet();

    for(Entry ent:entry){
        System.out.println(ent.getKey());
        System.out.println(ent.getValue());
    }

Map 也可以修改 put方法 Map
Student st = new Student("1","nmae");

    student.put("3", st);

重写HashCode方法判断是否相等
Object定义了HashCode方法,返回对象的hash码的值
当我们调用hashset的contains方法的时候,是先调用每一个元素的hashcode值返回hash码,在
每一个hash码相对的前提下调用equals方法去判断是否相等,只用在这两个都相等的前提下才能判断HashSet包含某个元素
eclipse可以自动生成hashcode和equals方法

comparable 接口

comparator 接口

java结合框架

Student类实现了comparable接口
public int compareTo(Student o) {
    // TODO Auto-generated method stub
    return this.id.compareTo(o.id);//利用id进行比较
}

public void testSortt(){
    List studentList =
            new ArrayList();
    Student s1 = new Student("1","s1");
    Student s2 = new Student("2","s2");
    Student s3 = new Student("3","s3");
    Student s4 = new Student("4","s4");
    Student s5 = new Student("5","s5");
    studentList.add(s1);
    studentList.add(s2);
    studentList.add(s3);
    studentList.add(s4);
    studentList.add(s5);
    Collections.sort(studentList);//student 类必须实现comparable接口
    for(Student s:studentList){
        System.out.println(s.id+","+s.name);
    }
}
public class StudentComparator implements Comparator {

public int compare(Student o1, Student o2) {
    //comparator定义临时的规则
    //如果是 0,两个对象相等
    //正数 o1>o2
    //负数 o1           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65318.html

相关文章

  • 集合概要学习---粗略

    摘要:集合框架的基本接口类层次结构其中表示接口,表示实现类和在实际开发中,需要将使用的对象存储于特定数据结构的容器中。实例是迭代器,拥有两个方法方法迭代器用于遍历集合元素。返回值则是转换后的数组,该数组会保存集合中的所有元素。 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构。 Java集合框架的基本接口/类层次结构...

    DesGemini 评论0 收藏0
  • Java 性能调优指南之 Java 集合概览

    摘要:单线程集合本部分将重点介绍非线程安全集合。非线程安全集合框架的最新成员是自起推出的。这是标准的单线程阵营中唯一的有序集合。该功能能有效防止运行时造型。检查个集合之间不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【编者按】本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型。文章系国内 ITOM 管理平台 O...

    gnehc 评论0 收藏0
  • Java 集合 Collection、Iterator

    摘要:如果需要创建对象,则必须与一个被迭代的集合。这是一个有状态的方法该方法用于保证对该流的后续访问中最大允许访问的元素个数。可以对集合元素进行整体的聚集操作。 Java集合分为Set(无序、不可重复)、List(有序、重复)、Queue(队列)和Map(映射关系) Java集合概述 数组元素既可以是基本类型的值,也可以是对象(实际保存对象的引用变量)集合只能保存对象(实际保存对象的引用变量...

    harryhappy 评论0 收藏0
  • Java™ 教程(集合介绍)

    集合介绍 本节介绍Java集合框架,在这里,你将了解集合是什么以及它们如何使你的工作更轻松、程序更好,你将了解构成Java集合框架的核心元素 — 接口、实现、聚合操作和算法。 集合 — 有时称为容器 — 只是一个将多个元素组合到一个单元中的对象,集合用于存储、检索、操作和传递聚合数据。通常,它们代表形成自然组的数据项,例如扑克牌(卡片集合)、邮件文件夹(信件集合)或电话目录(名称到电话号码的映射)...

    taoszu 评论0 收藏0
  • java源码

    摘要:集合源码解析回归基础,集合源码解析系列,持续更新和源码分析与是两个常用的操作字符串的类。这里我们从源码看下不同状态都是怎么处理的。 Java 集合深入理解:ArrayList 回归基础,Java 集合深入理解系列,持续更新~ JVM 源码分析之 System.currentTimeMillis 及 nanoTime 原理详解 JVM 源码分析之 System.currentTimeMi...

    Freeman 评论0 收藏0
  • Java集合遍历

    摘要:集合的遍历使用主要用于遍历集合中的元素,因此创建的对象是一个迭代器。提供的四个方法如果迭代器的集合还没有被遍历完,返回。 集合的遍历 使用Iterator Iterator主要用于遍历集合中的Collection元素,因此Iterator创建的对象是一个迭代器。 Iterator提供的四个方法 boolean hasNext(): 如果迭代器的集合还没有被遍历完,返回ture。 Ob...

    MadPecker 评论0 收藏0

发表评论

0条评论

zxhaaa

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<