`
_kudy
  • 浏览: 16578 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

javase_11(集合的理解)

 
阅读更多

 

集合类:

为什么使用集合类?

在面向对象的编程思想中,都是以对象的形式对事物进行描述的,为了保证对象的生命周期,我们需要持有对象
(什么叫做持有对象呢?Person p = new Person())

数组和集合类的区别?

1.数组和集合类都是容器,都能存储对象
2.集合类优点就是长度可变,而数组一旦定义.长度是不能修改的.


集合的特点:

集合类可用于存储对象.
集合类的长度可变
一个集合可以存储多种类型的对象..

Collection 接口:
1.一个独立的元素的序列,这些元素从一条或多条规则
2.collection接口下分为list集合和Set集合
3.list集合的特点是元素有序,可以允许有重复的元素
4.set集合的特点是元素无序,不允许有重复的元素
↓↓
List(子接口)
↓↓
ArrayList(实现类)
1.底层数组实现,查找快,增删慢
2.线程不安全
----------------------------------
Vector(实现类)
1.与ArrayList基本一样
2.线程安全
----------------------------------
LinkedList(实现类)
1.底层是链表的实现
2.增删快,查找慢


{
List集合元素存取方法一致
使用add()方法增加元素
由于List集合有序,可以使用get()方法获取元素
元素的迭代(Iterator)
通过集合对象的iterator()方法获得迭代器Iterator
通过Iterator迭代器的hasNext()方法判断是否存在下一个元素
通过Iterator迭代器的next()方法获取下一个元素
元素的迭代(Enumeration)
迭代Vector集合中的元素可以使用Enumeration
通过Enumeration的hasNextElements()方法判断是否还有元素
通过Enumeration的nextElement()方法返回下一个元素
}


↓↓
Set(子接口)
↓↓
Set集合无须,不允许有重复的元素
1.set集合通过存入对象的equals方法来保证集合中没有重复的元素

HashSet(实现类)
HashSet是set的子类,因而没有重复元素
底层使用了哈希算法保证没有重复元素
存储对象时,先调用对象的HashSet()方法,找到存储位置,再和当前的存储位置上已经存在的元素通过equals()方法进行比较,如果返回false,才能进行存储
往HashSet集合里存储的对象必须是重写HahCode 和equals()方法。

TreeSet(实现类)
TreeSet集合通过二叉树算法保证无重复元素,并对元素进行排序
第一种方式: 如果对象实现了Comparable接口,就可以存入TreeSet集合 因为它会自动的去调用里面的一个比较方法.所以在Person里面重写
第二种方式: 如果对象没有实现Comparable接口,在创建TreeSet对象时,需要给构造函数扔进一个比较器,实现Comparator接口 .(必须要在匿名内部类重写.或者继承一个类来重写)

----------------------------------

Map接口:
1.一组成对的“键值对”对象,允许根据键来查找值
2.Map集合的健值不允许有重复的,所以Map所有的键都构成了一个Set集合

Iterable接口:
1.JDK1.5新定义的接口作为Collection的父接口
2.主要就是实现了增强for循环

 

jdk1.5的新特征:

泛型:
由于集合可以存储不同数据类型的对象,所以取元素(地址)时会导致类型转换错误
jdk1.5新增加了泛型,为了减少操作集合的出错里
例如: ArrayList<Person> arraylist = new ArrayList<Person>();
比喻: 我在每一个挂了一个牌子.只能是Person 使用.做了一个限制..

使用泛型的好处:
1.提高的代码的安全性
2.讲运行期间的问题转到了编译期间的问题(你懂的~~)
3.省起了类型转换的麻烦
4.泛型类的出现优化了程序设计

增强for循环:
新接口Iterable中定义了增强for循环
可以通过增强for循环对数组和集合进行遍历
在迭代集合元素时,需要定义了泛型才能使用for循环

可变参数:

有的时候在设计方法时无法确定将来别人会传入的参数个数
JDK1.5增加了新特性可变参数,在函数中只声明参数类型,不规定个数
方法接受的参数实际上是一个数组,可以在方法中遍历数组
可变参数只能被定义为函数的最后一个形参
语法格式: 返回值 函数名(参数类型… 形参)

 

package com.javami.kudy.javaapin.StringStudy;
 
 public class Test {
         public static void main(String[]args)
         {
             show(33,45,7657,332,11,5465);
         }
         
         public static void show(int ... i)
         {
             for(int num : i)
                 System.out.println(num);
         }
 }
分享到:
评论

相关推荐

    javase_day04_v1_pm_all.zip

    这个名为"javase_day04_v1_pm_all.zip"的压缩包文件显然是一个教学资源集合,旨在帮助学习者巩固和深化Java SE(标准版)的知识。"day04"的命名可能意味着这是连续课程中的第四天内容,通常涵盖了一些基本概念的深入...

    JavaSE_集合.pdf

    ### JavaSE_集合.pdf 关键知识点详解 #### 一、集合与数组的区别 - **固定与动态**: 数组的长度是...以上是关于JavaSE集合框架的核心知识点,这些知识点对于理解Java集合框架的工作原理和高效使用集合类至关重要。

    JavaSE_JavaSE学习资料_

    总的来说,这个JavaSE学习资料包将引导开发者全面地学习Java语言的核心特性,掌握基本编程技巧,理解并运用集合框架、IO流等关键概念,从而具备开发高效、稳定的Java应用程序的能力。随着对JavaSE的深入学习,开发者...

    JavaSE_JDK_API_中文版

    `java.util`则包含了集合框架、日期时间处理、随机数生成等工具类。 2. **类(Classes)**:每个类都代表了一种特定的数据结构或功能,如`ArrayList`、`HashMap`等。类定义了属性(fields)和方法(methods),通过...

    MLDN_JAVASE_文档

    11. **Java库与API**: - **Java.util**:包含各种实用工具类,如日期时间、集合操作、事件模型等。 - **Java.nio**:非阻塞I/O,提供更高效的数据传输。 12. **JDBC**: - **数据库连接**:使用DriverManager、...

    JavaSE_01 源代码

    JavaSE(Java Standard Edition)是Java平台的核心部分,主要用于桌面应用程序的开发。在这个"JavaSE_01 源代码"压缩包中,我们很显然会发现一系列与Java基础编程相关的源代码文件,这些文件通常位于`src`目录下。这...

    JavaSE_J2SE_5.0_API_中文文档_html格式

    5. **增强的for循环(Enhanced For Loop)**:也称为foreach循环,简化了遍历集合、数组和其他迭代对象的过程,使代码更加简洁。 6. **类型推断(Type Inference)**:在Java 5.0中,类型推断主要体现在泛型的使用...

    JavaSE_Chaper11_Mark.pdf

    在JavaSE的学习中,了解Java中常用类的使用对于构建一个健壮的应用程序是至关重要的。本节主要介绍了一些核心的Java包和类,以及Java对象模型中的基础概念。接下来,我们将详细探讨这些知识点。 首先,让我们来看看...

    JavaSE_线程_电子书_源代码_PPT

    JavaSE是Java标准版,它是Java开发的基础,涵盖了面向对象编程、集合框架、网络编程、I/O流等核心概念。在JavaSE中,线程是一个非常重要的知识点,它关乎程序的并发执行,使得多任务处理成为可能。在这个“JavaSE_...

    JavaSE总结文档.rar

    这份"JavaSE总结文档.rar"包含了一份个人在复习JavaSE时编写的笔记,覆盖了多个主题,旨在巩固和深化对Java基础知识的理解。以下是根据压缩包中的文件名和JavaSE的一般知识体系,整理出的一些关键知识点: 1. **...

    02-Java语言进阶_javase_

    Java语言进阶_javase_这部分的学习涵盖了Java标准版(Java SE)的高级特性,主要集中在类、流、文件操作和数据结构等多个方面。以下是对这些主题的详细解释: 1. **Object类**:所有Java类都直接或间接继承自Object...

    JavaSE_java基础_

    11. **异常处理**:Java的异常处理机制帮助程序员处理程序运行时可能出现的问题,通过抛出异常(throw)和捕获异常(catch)来确保程序的健壮性。 12. **泛型**:泛型是Java 5引入的新特性,增强了类型安全,允许在...

    JavaSE_JavaEE_JavaME_API.

    JavaSE API提供了Java语言的基本库,包括集合框架、I/O流、多线程、网络编程、反射、异常处理等关键功能。例如,`java.util`包提供了集合类如ArrayList和HashMap,`java.io`包支持文件操作和数据流,`java.nio`包...

    Core Java SE.zip_JavaSE_API_java文档

    这个文档是Java开发者的重要参考资料,它详细介绍了Java SE平台中的类库、接口和方法,帮助程序员理解和使用Java进行系统级开发。 Java SE(Standard Edition)是Java平台的核心部分,用于桌面应用开发和服务器端...

    公司级代码javaSE_EE源代码(三年工作经验)

    JavaSE,即Java标准版,是Java的基础,涵盖了核心的Java编程语言特性和API,包括面向对象编程、集合框架、多线程、I/O流、网络编程等基础知识。而JavaEE,也就是Java企业版,是在JavaSE的基础上增加了用于构建分布式...

    JavaSE_Demo

    这个"JavaSE_Demo"很可能是包含了一系列的Java编程实例,帮助学习者深入理解Java SE的各种特性和功能。以下是对Java SE的一些关键知识点的详细说明: 1. **基础语法**:Java是一种面向对象的编程语言,其基础语法...

    JavaSE_学习笔记整理

    JavaSE学习笔记整理涵盖了Java编程语言的基础知识,包括Java的基础概念、数据类型、数组、类和对象的使用、面向对象的高级特性、系统常用类、异常处理以及集合框架。在具体学习这些知识点前,理解Java的基本命令、...

    javaSE_java_core.docx

    Java SE(标准版)是Java编程语言的基础,它包含了Java的核心库,包括Object类,这是所有Java类的根类。...这些知识点构成了Java SE的基础,理解和掌握它们对于成为一名合格的Java开发者至关重要。

    Thinking_in_Java_4th_edition.pdf_java_in_javase_

    这本书深入浅出地介绍了Java语言的核心概念和技术,旨在帮助读者建立起扎实的Java基础,并理解面向对象编程的核心思想。 1. **Java语言基础**:书中详细讲解了Java的基本语法,包括变量、数据类型、运算符、流程...

Global site tag (gtag.js) - Google Analytics