开发者社区> 青玉伏案> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

JavaSE高级之集合类

简介:
+关注继续查看

​下面的内容是对java中的集合类进行的总结,过段时间会分享java的网路编程,多线程等内容,欢迎批评指正。

 

1.Java中的集合是用来存放对象的,即集合是对象的集合,对象是集合的元素,java API集合类位于java.util包中。

2.常用集合类:

  Collection接口,List接口, Set接口,Map接口。接口类结合泛型的使用

3.集合和数组的区别在于集合的长度是动态扩充的,数组中可以存放基本数据类型和引用数据类型,集合中只能存放引用数据类型。

4.java中的集合层次关系

  接口:

    Iterator

    |-Collection

    |    |-Lis

    |    |   |-ArrayList

    |    |   |-LinkedList

    |    |   |-Vector

    |    |       |-Stackt

    |    |-Set

    |       |-HashSet

    |       |-TreeSet

    |-ListIterator

 

  Map

    |-HashMap

    |-HashTable

    |-TreeMap

 

 

Collection接口:

  1.一个Collection对象中可以放不同类型的数据,是Set接口和List接口的父类,元素是否有序是否允许重复取决于具体的实现

  2.Set 为集合,元素无序且不允许重复,List 元素有序,允许重复。

  3.Collection中的常用方法如下:

    添加元素:add(element : object): Boolean

    移除元素:remove(element : object): Boolean

    元素个数:size () : int

    判断是否为空:isEmpty() : Boolean

    判断是否存在该元素:contains(element : objects) : Boolean

迭代器:iterator() : iterator

  产生一个包含所有元素的数组:object[] toArray();

 

List接口

  添加元素: add(index : int. element : object) 

  移除元素:remove(index : int) : object

  获取元素:get(index : int)

  设置元素:set(index : int , element:objects);

  获取元素的索引: indexOf(element : object) : int

迭代器: listIterator() : ListIterator 

 

 

Iterator 接口:

  Iterator称为迭代器,便于实现对容器元素的遍历,所有实现了接口Collection的集合类都有iterator()方法,返回一个实现了Iterator接口的对象,Iterator在遍历中只能单向进行,Iterator接口是为遍历设计的可以取出和删除集合中的元素,但不可以删除其中的元素

 

Iterator中的主要方法

  Object  next()  指向集合中的下一个元素

  Boolean hasNext()  判断是否还有下一个元素

  Void remove() 移除集合中的元素,执行next() 后只能执行一次remove();

 

Collections 类:

  Collections 类是类似于Arrays类的工具类,它提供一些static静态方法供集合类使用或用来操作集合类

 

Map接口:

  Map内存储的是以键/值对这样成对出现的对象组,通过“键”对象,来查找“值”对象,Map中的“键”是唯一的,key对象和value对象关联在一起

  Map接口中的常用方法:

  Object put(object key, object value) 添加键值对

  Object get(object key) 获取键对应的值

  Set keySet() 返回此映射中包含键的Set视图

 

 

HashMap与HashTable的比较:

  HashTable是线程安全的,也就是说是线程同步的,HashMap是线程不安全的

  HashMap允许将一个null作为一个entry的key或者value 二HashTable不允许

 

如何选择集合类

  Set内中存放的元素师不允许重复的,是无序的,List中的元素是有序的是允许重复的

  Map的应用主要是运用键/值对进行快速查询

  ArrayList和LinkedList 之间的区别在于随机查询的性能上ArrayList的性能要好,但LinkedList对中间元素的删除和添加要好

  HashSet和TreeSet的主要区别在于集合内的元素是否排序

 

泛型的使用

  泛型的作用是对集合中的类型进行限制,避免去元素时进行强制转换

 

  HashMap与Set的结合使用

package cn.sdut.lu;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
 
public class HashMapDemo {
 
    public static void main(String[] args) {
 
        //HashMap实例化
        HashMap hm = new HashMap();
 
        //往集合中添加元素
        hm.put(1,new Person("aa",12));
        hm.put(2,new Person("vv",15));
 
        //获取键视图
        Set s = hm.keySet();
 
        //利用迭代器遍历键视图
        Iterator I = s.iterator();
 
        //遍历键视图取得键值
        while(I.hasNext()){
            System.out.println(hm.get(I.next()));
        }
    }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java - 包装类
Java - 包装类
13 0
【JAVA SE】—— 异常(上)
【JAVA SE】—— 异常(上)
22 0
Java集合类
Java集合类
24 0
Java类方法
Java类方法
50 0
高级Java必看的10本书
1、深入理解Java虚拟机:JVM高级特性与最佳实践 本书共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。
44 0
2019年高级Java程序员面试题汇总
引言:随着金九银十的到来,回首在经历了两周的跳槽求职路后,终于成功拿到offer,距今已经入职快一个月了,因此,这几天抽空将之前的面试题做了个汇总,一方面自己以后回顾学习用,一方面为大家奉送上一份秋收的福利。
2834 0
Java公开课-03.内部类
一。内部类的作用   1.实现了类的隐藏   2.实现了多重继承   3.内部类拥有外部类所拥有的属性和方法的访问权限   4.避免修改接口的时候出现同名方法 二。内部类--成员内部类   1.
766 0
高级Java必看的10本书
1、深入理解Java虚拟机:JVM高级特性与最佳实践 本书共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。
1780 0
Java面向对象高级--包装类
<h1>1、包装类的介绍</h1> <div> <img src="http://img.blog.csdn.net/20131008094901515" alt=""><br> </div> <div> <img src="http://img.blog.csdn.net/20131008094954921" alt=""><br> </div> <div>这八种包装类,继承的父类
1137 0
+关注
青玉伏案
在技术的世界中,一直在路上~
135
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载