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

JAVASE--集合

 
阅读更多

集合(Collection接口)

框架:一这类,这些类协同完成某些功能

集合中的某个类


1)非键值对集合

Set:无序的、不可重复的,访问方式只能用迭代器(iterator()迭代器是一次性用品)

HashSet:底层是用数组实现的,线程不安全的,轻量级的,

排重方式与equals和hashCode有关(默认地址排重)

自定义排重方式,必须重写所用类型的equals和hashCode方法

先调用hashCode方法,返回hashCode值相同,再调用equals方法

(在服务器上即大于4G内存,两个不同的地址在hash算法可以得到相同的hashCode,

所以还得再调用equals方法)

/**

Set e = new HashSet();

e.add(1);//这里的1为基本数据类型,自动封箱成Integer类型对象

e.add("abc");

e.add("def");

e.add("def");//排重

//访问方式

Iteratro it = e.iterator();

while(it.hasNext()){

Object o = it.next();

//Integer i = (Integer)it.next();

//报错,强转必须是强转成数据类型的共同父类

}//迭代器指针到达集合末端

**/


equals方法决定了元素是否可以存入Set中(自定义一般需要重写equals方法) 哈希(杂凑函数,算法--取模,减少冲突;装载因子--0.75) TreeSet:使用于经常需要排序输出的数据结构选择 (自定义类需要实现Comparable接口,重写compartTo方法,自定义排序算法)

List:没有排重功能,没有排序功能,凭下标存取,可重复;new出的实例对象默认长度为10,不限制长度

add(int index,Object object);添加到指定的下标

set(int index,Object object);将指定的下标位置进行修改

实现的机制为数组,适合于查询操作比较多的数据结构选取

ArrayList:不适合于多线程操作,线程不安全,效率高

Vector:多线程安全,效率低

LikedList:实现机制链表,适合于插入删除操作比较多的数据结构选取


2)键值对集合


Map<key,value>:key唯一,value可以出现重复

**key相同是,后一个value覆盖前一个的value

**一个Map有三张视图:

entrySet(包含所有键值对的关系映射)

keySet(生成key集的Set视图)

Collection(value值的集合)

HashMap:不适合于多线程操作,线程不安全的,效率高,方便快速查找

Hashtable:多线程安全,效率低

TreeMap:有序的(默认是以KEY值进行的升序排列)

put元素时,自动调用comparableTo方法,进行比较然后插入

分享到:
评论

相关推荐

    javase-思维导图.zip

    Java集合框架是处理对象集合的关键工具,包括List、Set、Queue接口及其常见的实现类,如ArrayList、LinkedList、HashSet、HashMap等。理解它们的特性和应用场景能提升代码的效率和可维护性。 线程和并发是Java SE的...

    javase-6-doc-api-zh_CN

    这个“javase-6-doc-api-zh_CN”文档集合正是针对这个版本的Java API的中文版官方文档,是学习和查询Java 6新特性及其用法的重要资源。 1. **增强的泛型** Java 6中的泛型有了进一步的强化,包括类型推断(Type ...

    JAVASE --api

    JavaSE(Java Standard Edition)是Java开发平台的标准版,它为构建桌面应用程序提供了核心功能。API(Application Programming Interface)则是JavaSE的一部分,是一系列预先定义的类和接口,供开发者在编写程序时...

    JavaSE-数组集合和链表集合 数组和链表.docx

    ### JavaSE中的数组集合与链表集合解析 #### 一、数组集合 数组集合是一种基本的数据结构,在Java中被广泛使用。它具有以下特点: 1. **有序性**:数组集合中的元素按照一定的顺序排列,这使得我们可以通过索引...

    javase1.8下载

    它允许开发者以一种更简洁的形式定义函数式接口的实现,极大地简化了多线程编程和处理集合的操作。 2. **函数式接口**:为了支持Lambda表达式,Java 8引入了`@FunctionalInterface`注解,用于标记那些只有一个抽象...

    面试题总结---javaSE--适用于初学者

    本文将深入解析“面试题总结---javaSE--适用于初学者”这一主题,旨在为初学者提供宝贵的复习资料。 1. **Java基础** - **数据类型**:Java分为基本数据类型(如int、char、boolean等)和引用数据类型(类、接口、...

    Jdk8下载(附:官网下载地址)

    3. **流(Stream)**:Java 8引入了流API,用于处理集合数据。流提供了一种声明性处理方式,支持并行和串行数据操作,大大提高了代码的可读性和效率。 4. **默认方法**:在接口中,Java 8引入了默认方法的概念,允许...

    JDK1.7(JavaSE1.7/JDK7)

    另外,改进的for-each循环现在可以用于遍历数组和集合,使得代码更简洁。 在类型推断方面,JDK7引入了“钻石操作符”(),使得在创建泛型对象时,编译器能够自动推断类型,减少了代码中的冗余。例如,`List&lt;String&gt; ...

    JAVASE-study-day01 源码

    标题 "JAVASE-study-day01 源码" 提示我们这是一份关于Java SE(标准版)学习的第一天的源代码资料,可能是针对初学者或希望巩固基础的开发者。描述中提到 "使用eclipse+jdk 1.8",意味着这些源代码是用Eclipse集成...

    就业班JavaSE-day09每日作业卷1

    在JavaSE-day09的每日作业卷1中,我们主要关注Map接口的特点、常用方法以及如何遍历Map集合。 首先,Map接口的主要特点是: 1. **键值对**:Map中的每个元素都由一个键(Key)和一个值(Value)组成,它们之间形成...

    就业班JavaSE-day07每日作业卷2

    JavaSE-day07每日作业卷2主要涵盖Java集合框架中的核心知识点,包括Collection接口、Iterator迭代器、增强for循环以及泛型的使用。以下是这些知识点的详细解释: 1. **Collection基本方法**: - `add()`:向集合中...

    JavaSE--jdk-8u25-linux-x64.rar

    JavaSE,全称为Java Standard Edition,是Java平台的核心部分,主要面向桌面应用和服务器端开发。这个"jdk-8u25-linux-x64.rpm"软件包是Oracle公司提供的Java Development Kit(JDK)的第8个更新版本,具体为Update ...

    JavaSE-API所有经典实例

    这个"JavaSE-API所有经典实例"集合包含了JavaSE API中的各种类和接口的实践应用,是学习和掌握Java编程的重要资源。通过这些实例,开发者可以深入理解Java的核心特性,包括面向对象编程、集合框架、多线程、I/O流、...

    贪吃蛇-javase-下载即可使用。

    《贪吃蛇-javase-下载即可使用》是一款基于Java Swing和AWT库开发的经典游戏,专为Java初学者设计,旨在帮助他们更好地理解和实践Java基础语法和图形用户界面(GUI)编程。以下是对这款游戏及其背后技术的详细解析:...

    javase-6-doc-api-zh_CN.zip

    4. **集合框架**:Java集合框架包括List、Set、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。这些集合类提供了存储和操作对象的高效方式。 5. **输入/输出(I/O)**:Java的I/O流系统提供了...

    面试-Java一些常见面试题+题解之JavaSE-JavaSE.zip

    JavaSE(Java Standard Edition)是Java的核心部分,提供了开发和运行桌面应用程序、网络应用和分布式系统的基础平台。对于Java开发者来说,掌握JavaSE是必备技能,也是面试中经常被考察的知识点。下面我们将深入...

    就业班JavaSE-day07每日作业卷1

    JavaSE-day07每日作业卷1主要涵盖了Java集合框架中的一些基本操作以及泛型的使用。下面是关于这些知识点的详细说明: 1. **Collection基本方法**: - `add()`:向集合中添加元素。 - `remove()`:移除集合中的...

    javaSE-java-core.docx

    5. 集合框架:Java集合框架由`Collection`接口作为顶层接口,分为`List`和`Set`两个主要分支。`List`接口中的元素有序且可重复,如`ArrayList`和`LinkedList`;`Set`接口中的元素无序且不允许重复,如`HashSet`。...

    javase-6-doc-api-zh_CN_卷2

    2. javax.xml: 这个包是处理XML文档的工具集合,包括解析、序列化、转换等功能。例如,`javax.xml.parsers`子包提供了用于创建和使用DOM(Document Object Model)和SAX(Simple API for XML)解析器的类。 3. ...

Global site tag (gtag.js) - Google Analytics