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()));
        }
    }
}

相关文章
|
4月前
|
存储 算法 Java
java数据结构,列举并解释Java中的集合框架(Collection Framework)。
java数据结构,列举并解释Java中的集合框架(Collection Framework)。
26 0
|
9月前
|
存储 Java 索引
【JavaSE】Java基础语法(二十八):HashSet集合
1. HashSet集合概述和特点 底层数据结构是哈希表 存取无序 不可以存储重复元素 没有索引,不能使用普通for循环遍历
|
4月前
|
Java
【零基础学Java】—Collections集合工具类(四十二)
【零基础学Java】—Collections集合工具类(四十二)
|
8月前
|
存储 Java 数据库
Java 集合框架概述及Collection接口中常用的方法总结
Java 集合框架概述及Collection接口中常用的方法总结
68 0
|
8月前
|
存储 容器
《JavaSE-第十七章》之LinkedList
《JavaSE-第十七章》之LinkedList
20488 34
|
9月前
|
安全 Java
【Java】集合进阶——泛型
【Java】集合进阶——泛型
58 0
|
9月前
|
存储 Java
【Java】Java核心要点总结 65:TreeSet 两种排序
1. Comparable 和 Comparator区别比较 Comparable 是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”。Comparator 是比较器,我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。 Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。
Java基础进阶集合-Collections工具类
Java基础进阶集合-Collections工具类
Java基础进阶集合-Collections工具类
|
存储 安全 Java
【JavaSE】之集合框架(上)
【JavaSE】之集合框架(上)
【JavaSE】之集合框架(上)
|
存储 安全 Java
【JavaSE】之集合框架(下)
【JavaSE】之集合框架(下)