Java集合类-HashSet与TreeSet集合

涎涎原创约 788 字大约 3 分钟...JavaJava

226-Java集合类-HashSet与TreeSet集合.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

概念

示例代码

package com.tencent.chapter02;

import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;

public class HashSetAndTreeSet {

	public static void main(String[] args) {
		/**
		 	HashSet:其底层 HashMap
				1.无序:添加元素的顺序与内存中存储的顺序不一致
				2.不允许重复:使用equals()机制进行比较
				3.允许null值
				4.存储结构:哈希存储
				5.集合只允许存储引用类型对象,但是基本数据类型可以自动装箱
				6.HashSet的效率   > TreeSet的效率
		 */
		//构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75
		HashSet hashSet = new HashSet();
		hashSet.add(null);
		hashSet.add(null);                   //被排除
		hashSet.add("abc");
		hashSet.add(new String("abc"));      //被排除
		hashSet.add(10);   //自动装箱  基本类型 -> 包装类Integer
		hashSet.add(true); //自动装箱  基本类型 -> 包装类Boolean
		
		//System.out.println(hashSet);//[null, abc, true, 10]
		
		/**
		 * TreeSet:其底层 TreeMap
				1.无序:添加元素的顺序与内存中存储的顺序不一致,但是会根据元素的自然顺序排序,需要使用Comparable接口中的compareTo()方法进行两两比较,必须保证元素类型一致
				2.不允许重复:使用equals()机制进行比较
				3.不允许null值: 因为需要使用Comparable接口中的compareTo()方法进行两两比较,而null不能调用任何方法
				4.存储结构:二叉树结构排序(红黑树)
				5.集合只允许存储引用类型对象,但是基本数据类型可以自动装箱
		 */
		//构造一个新的空 set,该 set 根据其元素的自然顺序进行排序
		TreeSet treeSet = new TreeSet();
		//treeSet.add(null);                   //java.lang.NullPointerException 值不允许为null
		treeSet.add(97);
		treeSet.add(88);
		treeSet.add(2);
		treeSet.add(123);
		treeSet.add(865);
		treeSet.add(88);
		
		System.out.println(treeSet);//[2, 88, 97, 123, 865]

		/**
		 * 遍历:for,因为无序,不能使用下标进行访问
		 */
		for (int i = 0; i < treeSet.size(); i++) {
			
		}
		
		/**
		 * 遍历:forEach
		 */
		for (Object element : treeSet) {
			System.out.println(element);
		}
		
		System.out.println("----------------------");
		
		/**
		 * 迭代器遍历:iterator
		 */
		Iterator iterator = treeSet.iterator();
		while(iterator.hasNext())
		{
			//Object element = iterator.next();
			System.out.println(iterator.next());
		}
	}
	
}

分割线


相关信息

以上就是我关于 Java集合类-HashSet与TreeSet集合 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

扩展知识

Collection接口:是一个集合接口,用于保存引用类型的对象,是List与Set的父接口

	List:有序,允许重复
		ArrayList: 线性存储,查询效率高,新增与删除效率较低
		LinkedList:链表存储,查询效率较低,新增与删除效率较高
		
	Set :无序,不允许重复
		HashSet:哈希存储
		TreeSet:二叉树存储,自然顺序排序
		
		
Collections:操作集合的工具类,提供static方法用于访问Collection集合中的元素
Arrays:操作数组的工具类

Map集合:键值对存储方式

	HashMap、TreeMap、HashTable

分割线


上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4