`
文昌平蓝杰
  • 浏览: 56116 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

集合框架的应用解析

阅读更多

 

java集合框架:

  1.集合概念:集合可以看做是我们在内存中存放一组对象的容器,就像数组,或队列一样,

 

  2.java.util.Set接口  他的子类类提供的是一个无序的集合;

    java.util.List接口 他的子类提供的是一个有序的集合;

    java.util.Map接口 他提供了一个映射关系的集合数据结构;

 

  3.List接口

    如:创建一个装学生对象的List

public List<Student> createList(){

		//构造学生队列 ,并将队列长度固定为 20 
		List<Student> list = new ArrayList<Student>(20);
		//用循环将创建对象并将其添加到队列中
		for(int i=0;i<20;i++){
			//设置参数
			String name = "学生"+((char)(65+i));
			Random rand = new Random();
			int score = rand.nextInt(20);
			//设置学生信息
			Student stu = new Student(name,score);
			list.add(stu);
		}
		return list;
	}  
 

这样就创建了一个装存学生对象的List集合,并用随机数给他赋了值。

public void deleteScore(List<Student> list,int score){

		System.out.println("删除的学生为:");
		//用循环开始寻找
		for(int i=0;i<list.size();){
			//获取每个学生的对象
			Student stu = list.get(i);
			//匹配
			if(stu.getScore() < score){
				System.out.println(stu.getName()+":  "+stu.getScore());
				list.remove(stu);
			}
			else{
				i++;
			}
		}
	}
 

这样就删除了小于Score分数的学生,需要注意的是,每当你删除一个学生,List的长度就会减少一个单位,

 

所以在用循环的时候,要注意控制循环变量的变化!!

 

  4.Set集合

Set集合的创建和List的差不多,因为他们的add函数都一样

如:

public Set<Student> createList(){

		//构造学生队列 ,并将队列长度固定为 20 
		Set<Student> set = new  HashSet<Student>(20);
		//用循环将创建对象并将其添加到队列中
		for(int i=0;i<20;i++){
			//设置参数
			String name = "学生"+((char)(65+i));
			Random rand = new Random();
			int score = rand.nextInt(20);
			//设置学生信息
			Student stu = new Student(name,score);
			set.add(stu);
		}
		return set;
	}
 

这个就可以不用说了,值得一提的是,在Set中,需要寻找到某一个数据时,不能用get函数,因为Set根本没

 

有Get函数,我们需要用到迭代器!!

如:

public void searchScore(Set<Student> set,int score){

		System.out.println("成绩为"+score+"的学生有:");
		//获取迭代器
		Iterator<Student> ite = set.iterator();
		//循环找,并打印
		while(ite.hasNext()){
			//获取相应位置上的学生对象
			Student stu = ite.next();
			if(score == stu.getScore())
			System.out.println(stu.getName()+":  "+stu.getScore());
		}
	}
 

这里有两个非常重要的函数 hasNext(),判断set是否有后继,next()即为返回他的后继。还有在删除的时候

 

必须要用数组存储起来一次性删除,

Set<Student> s = new HashSet<Student>();

		Student stu = ite.next();
			if(score >stu.getScore()){
				s.add(stu);
				System.out.println(stu.getName()+":  "+stu.getScore());
			}
 

然后就remove(s);就ok啦

 

Map,Map是一个特殊的集合,他没有父类,他由映射关系形成,key值不可重复,而影射值是可以重复的,他

 

的一些使用方法与其他两种大致相同,不同的是,寻找他的数据需要吗,利用key值建造set的集合接口,然

 

后用set的迭代器根据key值映射寻找自己的值:

如:

public void searchScore(Map<Integer,Student> map,int score){

		System.out.println("成绩为"+score+"的学生有:");
		//创建set集合框架
		Set<Integer> set = map.keySet();
		//获取迭代器 (Set中只有这样才能获取下一个对象,因为他是无序不重复的)
		Iterator<Integer> ite = set.iterator();
		//创建队列将要删除的东西保存到队列
		Set<Student> s = new HashSet<Student>();
		while(ite.hasNext()){
			//获取相应位置上的学生对象
			int number = ite.next();
			Student stu = map.get(number);
			if(score >stu.getScore()){
				s.add(stu);
				System.out.println(stu.getName()+":  "+stu.getScore());
			}
		}	
	}
 

里边多了个函数keySet(),是把map的key转化为set集合类型。map的删除和set里得差不多,还是把key用set装起来,利用set的迭代器来寻找key值,然后利用key值找到数据,把数据存起来,删除就ok。

代码就不写了,相信好好看了前面的童鞋都应该能想到。

 

 

多多指教


分享到:
评论
1 楼 GLC 2012-07-17  

相关推荐

    Java 集合框架深度解析:List、Set 和 Map 的差异与应用

    本文将深入探讨 Java 集合框架,并详细分析 List、Set 和 Map 之间的区别及其应用场景。 Java 集合框架是 Java 程序设计中不可或缺的一部分,它提供了灵活、高效的方式来处理数据集合。List、Set 和 Map 作为集合...

    Java Android开发:深入解析Java集合框架及其应用场景

    内容概要:本文详细介绍了Java集合框架的重要性和在Android开发中的应用。首先,阐述了集合框架的基本概念,包括接口(Collection、Set、List、Map)和其实现类(ArrayList、LinkedList、HashSet、TreeSet、HashMap...

    Java面向对象编程与集合框架:Map接口与泛型的应用解析

    使用场景及目标:帮助读者理解和掌握 Java中面向对象编程的基本概念、集合框架中 Map接口的使用、泛型的高级特性及应用场景。适用于日常开发中对集合框架的优化和提升代码质量。 其他说明:通过丰富的示例代码,加深...

    java集合框架图 (清晰表明集合之间的关系)

    Java 集合框架图解析 Java 集合框架图是一个全新的集合框架,主要由一组用来操作对象的接口组成。不同的接口描述了一组不同数据类型。Java 2 集合框架图集合接口有 6 个,表示不同集合类型,是集合框架的基础。抽象...

    探索Java集合的宝藏:集合框架的主要接口和类全解析

    ### Java集合框架的主要接口和类全解析 #### Java集合框架概览 Java集合框架是Java标准库的一个核心组成部分,它为开发人员提供了多种用于存储和操作数据的方式。这些集合类和接口的设计旨在满足不同的需求,并...

    java集合框架PPT

    这个PPT作为培训教材,旨在深入解析Java集合框架的核心概念、接口和类,帮助学习者掌握其基本使用和高级特性。以下是Java集合框架的一些关键知识点: 1. **集合接口**:集合框架的核心是若干个接口,包括`List`、`...

    JVM_多线程高并发_集合框架_数据库 BAT面试金典常见80问.pdf

    《JVM_多线程高并发_集合框架_数据库 BAT面试金典常见80问.pdf》这份资料聚焦于Java开发人员在面试中可能遇到的重要问题,涵盖了JVM、多线程高并发、集合框架和数据库等多个核心领域。以下是对这些知识点的详细说明...

    Java源码分析:集合-容器.pdf

    Java集合框架是Java编程语言中非常重要的组成部分,它为Java开发者提供了大量用于存储数据的结构。Java集合框架主要包括两大类,单列集合和双列集合。单列集合中,Set接口的集合主要用于存储不重复的元素,而List...

    JAVA集合框架Map特性及实例解析

    JAVA集合框架Map特性及实例解析 JAVA集合框架中的Map特性是指Map接口提供的一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value。Map接口的特性包括: 1. Map提供一种...

    深入探索Java集合框架:解密复杂的面试题和精准解析

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作对象。本文将深入探讨Java集合框架的核心概念,包括List、Set、Map等接口,以及ArrayList、LinkedList、HashSet、...

    JavaEE轻量级框架应用与开发——S2SH答案

    通过以上章节的详细解析,我们可以看到,《JavaEE轻量级框架应用与开发——S2SH》这本书覆盖了JavaEE领域内多个主流框架的基础知识与高级特性,并通过大量的练习题加深了读者对于这些技术的理解。对于希望深入学习...

    02-Java集合框架(外发).pdf

    Java集合框架的实际应用案例 #### List接口例子 ```java package com.yootk.demo; import java.util.ArrayList; import java.util.List; public class TestDemo { public static void main(String[] args) { ...

    《软件开发基础(Java)》实验报告-Java集合框架.docx

    尽管文档的描述部分提到了“Python实验报告”,但实际上文档内容主要涉及Java集合框架的应用。因此,我们重点解析Java相关内容。 ### 阅读结果分析 由于文档中的“阅读结果”部分未提供具体内容,我们假设这部分应...

    SSI集合框架搭建

    "SSI集合框架搭建"这个标题可能指的是在一个项目中,使用SSI技术构建一个用于处理和管理多个SSI指令的框架。这可能包括自定义SSI标签、模板系统以及对服务器配置的优化,以提高效率和可维护性。 描述中的"ssi框架...

    xml解析为java集合对象.pdf

    在这个过程中,使用了dom4j这一第三方库来解析XML文档,并利用Java的集合框架存储解析后的数据。 ### 知识点一:XML基础 XML(eXtensible Markup Language)即可扩展标记语言,是一种用于存储和传输数据的标记语言...

    java集合框架

    最后,通过示例代码进一步理解Java集合框架的应用,例如创建`LinkedList`实现的队列、使用`HashSet`去除重复元素以及利用`TreeSet`对元素进行排序等。 Java集合框架的强大在于其灵活性和高效性,掌握其核心概念和...

    java面试题,ava核心知识 集合框架、JVM机制、多线程与并发框架、网络协议、SSM框架、MySQL、分布式、微服务、高并发

    Java是企业级应用开发的重要语言,其面试题涵盖了广泛的领域,包括了Java核心知识、数据库管理、网络通信、框架应用以及现代软件架构模式。以下是对这些知识点的详细解析: 1. **集合框架**:Java集合框架是处理...

    JavaEE设计模式解析与应用

    在"JavaEE设计模式解析与应用"这个主题中,我们将深入探讨设计模式的原理、应用场景以及如何在实际项目中应用。 首先,让我们了解一些基础的设计模式类型。设计模式分为三大类:创建型、结构型和行为型。创建型模式...

    关于Java集合框架面试题(含答案)下

    面试中,面试官经常关注候选者对集合框架的理解,特别是HashMap、HashTable、ArrayList、Vector、LinkedList以及EnumSet等类的区别和应用场景。 21.HashMap与HashTable的主要区别: - HashMap允许null键和值,而...

Global site tag (gtag.js) - Google Analytics