`
李瑞辉++
  • 浏览: 20836 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

集合框架 小结

 
阅读更多
Java 中集合类定义主要在java.util.*包下面,常用的为以下三种:
一.Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。
实现类-----》HashSet :此类实现 Set 接口,由哈希表支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类为基本操作提供了稳定性能。在此类中即使我们放入的元素是有序的,但打印出来的会是无序的(hash 存储的结果),所以对于数据的提取不能通过下标直接进行操作,而必须通过迭代器java.util.Iterator进行操作,该类下有以下两个主方法:
boolean hasNext()
如果仍有元素可以迭代,则返回 true。
E next()
返回迭代的下一个元素。

同时也正是因为这样所以此类存储不允许存储相同的对象,当有两个或两个以上相同存储对象出现时,此类对象只会存储第一个,后来者则不会存储,所以利用这个特性,可以很容易排除掉相同的数据,以节省空间。

实例1:通过HashSet对象实现对数组数据进行去重复操作:
/**
	 * 进行去重复操作
	 * @param array
	 * @return
	 */
	//int[] arr = set.toArray(new int[0]);
	public int[] Unrepeat(int[] array){
		/*定义一个set ,借用set 的不可重复的特点*/
		java.util.Set<Integer> set = new HashSet<Integer>();
		for(int i=0;i<array.length;i++){
			set.add(array[i]);
		}
		/*以set的长度定义一个新的数组*/
		int []arr = new int[set.size()];
		/*进行set的遍历,并给数组赋值*/
		int j=0;
		for(int temp:set){
			arr[j++]=temp;
		}
		/*返回经过去重复操作后的数组*/
		return arr;			
	}
	


二.List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,即以线性的存储元素,不会重新排列。
实现类-----》ArrayList:实现了List 接口所有可选列表操作。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。每个 ArrayList 实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。其实就相当于一个数组,只不过大小是可变的,因为是线性存储的,所以对于数据的插入和提取将非常方便:
实例2:实现学生信息的有序存储,这样也很方便像数组一样直接可以进行下标运算
public List<Student>  getUsers(int count){

		List<Student> list = new ArrayList<Student>();
		//List<Student> list = new ArrayDeque<Student>();
		for(int i=0;i<count;i++){
			Student student = new Student(i+1);
			list.add(student);
		}
		return list;
		
	}


三.Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制
   实现类-----》 HashMap:基于哈希表的 Map 接口的实现。就是我们在数学中学的映射,一个原象对应一个象,因为两个不同原象可以有相同的象,所以属于满射。向HashMap实例对象添加数据时需要,有两个数据一个是key,另一个是value,但每个key都不能一样,如果有两个或两个以上数据中的key是相同的,只会以最后一个为准,就像QQ账号(key)改密码(value)。 Map实现一对一,所以方便管理数据,就像学校管理学生一样,每个人都有一个学号,找到你只是一秒钟的事
实例3:用hashmap实现重复数据的统计
public HashMap<Integer, Integer> CountNum(int[] array){
		HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
		for(int i=0;i<array.length;i++)
		{
			if(map.containsKey(array[i])){
				int value = map.get(array[i])+1;
				map.put(array[i], value);
			}
			else{
				map.put(array[i],1);
			}
		}	
		return map;
	}



分享到:
评论

相关推荐

    java集合小结

    ### Java集合小结 #### 一、集合的概念与重要性 集合是Java编程语言中用于存储、管理和操作数据的一种重要工具。它提供了多种数据结构来适应不同的应用场景,从而有效地提高程序开发效率。从数据结构的角度来看,...

    集合小结 Collection

    ### 集合小结 Collection #### Java集合概述 Java中的集合是一组对象的组合,类似于C++标准模板库中的容器。但是与C++不同的是,Java集合不仅可以存储单一类型的数据,还可以存储不同类型的对象。这使得Java集合...

    DM642_RF框架小结

    ### DM642_RF框架小结 #### 一、RF5框架概述 RF5作为德州仪器(TI)推出的一种DSP(数字信号处理器)软件开发框架,它的设计旨在为开发者提供一个简便高效的软件开发起点。相较于之前的版本RF1和RF3,RF5的主要...

    集合问题小结

    【集合问题小结】 在Java编程中,集合是用来存储多个对象的容器,它们提供了比数组更灵活的操作方式。集合框架是Java中一个重要的部分,它包括多种数据结构,如List、Set和Map等。本篇将重点讨论泛型、匿名内部类...

    基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用

    3. Glyphicons:这是由Glyphicons提供的一个包含200个符号的字体格式图标集合,通常在Bootstrap中使用的是 Glyphicons Halflings,虽然通常是付费的,但与Bootstrap的合作使得开发者可以免费使用。 要在项目中使用...

    java基础知识从业必备知识点结构图小结.rar

    为了全面理解Java基础知识,本小结将按照给定的文件名,逐一解析关键知识点。 1. **Java基础知识** 这一部分通常包括Java语言的基础语法,如变量、数据类型、运算符、流程控制(if语句、switch、for、while循环等...

    Java程序设计 3 数组与集合 简图.ppt

    小结 本节课我们学习了Java程序设计中的数组和集合,了解了数组和集合的区别和联系,并学习了List、Set、Map接口的特点和应用场景。同时我们还学习了如何实现集合的基本方法。 思考考 1. 什么是数组?数组的特点...

    JavaScript初学小结

    JavaScript初学小结 在IT领域,JavaScript是一种广泛使用的编程语言,主要用于网页和网络应用的开发。这篇小结将深入探讨JavaScript的基础知识,包括语法、数据类型、控制结构、函数、对象以及它在实际开发中的应用...

    java课程小结.rar_北京理工大学JAVA课程

    7. **集合框架**:包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。理解它们之间的区别和使用场景,是Java编程中非常实用的部分。 8. **异常处理**:Java使用try-catch-finally结构...

    27款经典的CSS框架小结 网页制作必备

    一个CSS框架通常包含一系列的CSS文件集合,这些文件中包含了页面设计中常用的基本元素重置、页面排版、网格布局、表单样式、通用规则等预设代码块。利用这些框架,开发者不需要从零开始编写每一段CSS代码,可以直接...

    spring学习小结

    【Spring 框架学习小结】 Spring 是一个流行的 Java 应用开发框架,它以其控制反转(Inversion of Control, IOC)和面向切面编程(Aspect-Oriented Programming, AOP)为核心特性,被誉为轻量级框架。下面将详细...

    Android问题小结

    本资料包"Android问题小结"是针对Android开发者的一个宝贵资源集合,涵盖了多个方面的知识,包括事件分发机制、设计模式、图层管理、属性动画、框架使用、应用安全以及个人职业发展规划等。 首先,"技术交流--...

    apply应用小结

    标题中的“apply应用小结”指的是JavaScript中函数对象的一个关键特性——`apply()`方法的使用总结。`apply()`是JavaScript中函数对象的一个方法,它允许我们调用一个函数,并可以自定义函数执行时的上下文(`this`...

    Java(J2SE、J2EE)学习小结

    3. 集合框架:`ArrayList`和`Vector`都是列表实现,但`ArrayList`是非线程安全的,性能较好;`Vector`是线程安全的,但在多线程环境下效率较低。`HashMap`和`Hashtable`类似,前者非同步,后者同步,因此`Hashtable`...

    PowerShell 指令操作集合(小结)

    PowerShell是一种由微软开发的自动化脚本语言和配置管理框架,包含命令行外壳和脚本语言。在IT管理、自动化任务和处理数据方面非常强大。以下是PowerShell常用指令操作集合的详细解释: 1. 打印工作目录(pwd):这个...

    Java使用Iterator迭代器遍历集合数据的方法小结

    Java使用Iterator迭代器遍历集合数据的方法小结 Java语言中,使用Iterator迭代器遍历集合数据是一种常见的操作。本文主要介绍了Java使用Iterator迭代器遍历集合数据的方法,并结合实例形式分析了Java迭代器进行集合...

    Java基础知识小结

    ### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...

    java多态小结

    例如,在使用集合框架时,我们可以声明一个`List`类型的变量,然后将其赋值为`ArrayList`、`LinkedList`等不同实现的具体实例,而无需关心具体是哪一种实现,因为所有实现都遵循相同的接口规范。 此外,多态也是...

Global site tag (gtag.js) - Google Analytics