- 浏览: 319272 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (221)
- J2SE心得 (4)
- 经典帖子 (8)
- 亲身经历 (9)
- SSH框架 (12)
- 数据库 (10)
- java基础知识 (41)
- java解惑 (17)
- 软件测试 (0)
- JSP (6)
- JavaScript (8)
- jQuery学习 (12)
- 硬件知识 (1)
- 工具类 (14)
- 面试专题 (4)
- Struts2专题(学习) (14)
- Spring源码分析专题(学习) (15)
- JavaScript专题(学习) (8)
- ExtJs专题(学习) (6)
- Java Web快速入门——全十讲 (10)
- web前台 (1)
- J2ME手机方面 (1)
- 积累整理 (1)
- MyEclipse工具篇 (10)
- oracle (1)
- Android基础 (1)
最新评论
-
youjianbo_han_87:
上传成功后,无法跳转到success页面,会报2038和404 ...
Struts2使用FlashFileUpload.swf实现批量文件上传 -
showzh:
...
MyEclipse 怎么安装SVN插件 -
wpf523:
赞一个啊,楼主加油
一些比较复杂的运算符(二) -
独步天下:
request.getSession().getAttribute() 和request.getSession().setAttribute() -
HelloJava1234:
thank you
怎么改变MyEclipse默认的jsp打开方式
集合类
集合(集合类的对象)是管理其他若干对象的,类似于C++标准模板库中的容器,不过JAVA的集合类的对象中可以存放多种类型的对象。
接口和类共同构成了一个集合框架,集合的概念,一个对象可以装载多个对象,就是集合对象。
集合框架
1,集合接口
Collection接口
List接口
Set接口
SortedSet接口
Collection 存储并管理多个对象的对象,集合中的每个元素都是对象。
Map,Map中没有对象,而是键值对,由Key,value组成的键值对,Key是不可重复的。value是可以相同
的,Key和value是一一对应的。
集合中用到的类,接口在java.util包中,使用时注意将其引入import。
Collection 接口(以下介绍其子接口)
1)List ,一个List的实现类的对象在管理多个对象时会按顺序组织对象(即按照将对象放入的顺序存储),List实现类的对象是有顺序的,List实现类对象中的内容是是可重复的。(注意,顺序和排序的区别)
2)Set ,一个Set的实现类表示一个数学概念上的集合,Set的实现类的对象中的元素是无顺序的,也就是不会按照输入顺序来存放,Set的实现类对象中的元素是不重复的。
3)SortedSet,他是Set的子接口,他的实现类会对集合中的元素进行排序。但是要指定排序规则,他会按排序规则进行排
序。
Map 接口(以下介绍其子接口)
Map接口
SortedMap接口
SortedMap,这个接口的实现类同样可以实现,不过是对键值对中的Key进行排序,这个接口的实现类也是要指定排序规则的。
JDK1.4中的集合是不安全的对象,JDK5.0中解决了这个问题。
2,接口的实现类
List接口的实现类
List接口
ArrayList类
LinkedList类
Vector类
1) ArrayList是接近于数组功能的集合类,ArryList的实质就是一个会自动增长的数组,ArrayList是用封装的数组来实现
的List接口的。
Collection的实现类对象的遍历方式是用迭代来实现的。
在使用迭代器时先要获得一个迭代器的对象,Iterator(迭代器接口)这是一个接口,迭代器是在集合类中实现的,也就是
说,他是一个内部类(匿名内部类)实现的。
Iterator接口中定义的常用方法方法hasNext(),next()。
hasNext(),这个方法会使用一个游标,并通过判断游标指向的位置是否存放有对象。
next()方法也是Iterator接口中定义好的方法,这个方法会使游标指向下一个元素的位置,游标会跳过第一个元素,并返回其中的内容。
Collections(注意,这个不是Collection接口) 这是一个工具类,也是java.util包中的,这个类中的sort(list接口的实现类的对象)方法,其参数是一个集合类的对象,这个方法使用来对集合类的对象进行排序的。以后,我将以集合这个名字来称呼集合类的对象。,对于字符串对象内容的集合来说会按字典顺序排序(升序),对于数字内容的集合排序也会按照升序排序。
集合排序
排序可以分为两部分内容,一个是排序的规则,也就是按照什么来进行排序,并且排成什么样的顺序。第二个就是排序的算
法,他决定了排序的效率。
在对自定义的集合内容类型排序时,需要先定义那个类型的排序规则。
Comparable接口,这个接口中只定义了一个compareTo(Object o),方法的返回值类型是整型,如果当前对象大于参数对象就返回正数,当前对象等于参数对象是就返回0,当前对象小于参数对象时就返回负值,这样写就是升序排列,反之则是进行降序排列,在实现这个接口中的方法时,返回值定义方式,只有这两种。
根据指定类型的排序规则实现了Comparable接口,那么就可以对存有这个类型的集合进行整体排序。Comparable接口,也叫做可比较接口。这个接口在java.lang包下。只要实现了这个接口,就是可排序的。
接下来介绍另外一种对自定义类型对象的集合整体排序的方法,也就是实现比较器接口(Comparator),这个接口中定义
了一个compare(Object o1,Object o2)方法来比较两个对象,这个方法的返回值定义和上面介绍的那个方法是一样。
注意:在API,帮助文档中以上两个方法的参数类型是T,这代表的模板类型,也就是集合中存放的内容的类型,在JDK1.4中其参数就是Object类型,模板类型的详细内容会在最后的JDK5.0新特性中讲到。
Comparator接口可以在匿名内部类中实现,Collections 中的sort(集合了的对象,比较器)方法,可以对自定义类型内容的集合进行整体排序。
集合排序的实例:
public class Employee implements Comparable{ private String name; private int age; private double salary; public Employee(String name, int age, double salary) { super(); // TODO Auto-generated constructor stub this.name = name; this.age = age; this.salary = salary; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public String toString() { return name+" "+age+" "+salary; } public int compareTo(Object o){//默认是升序排列,也可以使用降序 Employee e=(Employee)o; if (this.age<e.getAge()) return 1; else if (this.age()>e.getAge()) return -1; else if (this.salary()<e.getSalary()) return 1; else if (this.salary>e.getSalary()) return -1; else return this.name.compareTo(e.getName()); } }
import java.util.*; public class TestEmployee { public static void main(String[] args){ List l=new ArrayList(); l.add(new Employee("Liucy",40,2000)); l.add(new Employee("Hiloo",40,8000)); l.add(new Employee("Chenzq",18,300)); l.add(new Employee("George",45,10000)); l.add(new Employee("BaoJie",18,300)); Collections.sort(l);}}
发表评论
-
java 的split的用法
2010-01-20 13:05 1811Java split用法 java.lang.string.s ... -
java简介以及了解java(三六)
2009-08-14 14:50 824*1: 名为DoCallStuff类实现了Callable,S ... -
java简介以及了解java(三五)
2009-08-14 14:49 1141处理自定义注释的类例: import java.lang.r ... -
java简介以及了解java(三四)
2009-08-14 14:45 847JAVA5.0 的注释(Annotation) ... -
java简介以及了解java(三三)
2009-08-14 14:42 970泛型方法的定义把数组拷贝到集合时,数组的类型一定要和集合的泛型 ... -
java简介以及了解java(三二)
2009-08-14 14:40 733java5.0中的泛型说明增强了java的类型安全,可以在编译 ... -
java简介以及了解java(三一)
2009-08-14 14:38 940可变长的参数在java5.0中,可以使用一种变长参数,也就是例 ... -
java简介以及了解java(三十)
2009-08-14 14:37 795Java5.0的新特性自动装箱和自动拆箱自动封箱和自动拆箱,它 ... -
java简介以及了解java(二九)
2009-08-14 14:35 826反射反射,在运行时,动态分析或使用一个类进行工作。类对象,是一 ... -
java简介以及了解java(二八)
2009-08-14 14:33 893UDP socket这种信息传输方 ... -
java简介以及了解java(二七)
2009-08-14 14:32 829JAVA网络编程网络基础知识网络编程的目的就是指直接或间接地通 ... -
java简介以及了解java(二六)
2009-08-14 14:29 818ObjectInputStream和ObjectOutputS ... -
java简介以及了解java(二五)
2009-08-14 14:28 934BufferInputStream和BufferOutputS ... -
java简介以及了解java(二四)
2009-08-14 14:27 758Java中的I/O使用I/O流访问file中的内容。JVM与外 ... -
java简介以及了解java(二三)
2009-08-14 14:24 678基本输入输出所使用的类的介绍:FileInputStream和 ... -
java简介以及了解java(二二)
2009-08-14 14:23 740处理跨平台性对于命令 ... -
java简介以及了解java(二一)
2009-08-14 14:22 869死锁问题多线程不释放 ... -
java简介以及了解java(二十)
2009-08-14 14:21 859共享数据的并发处理多线程同时并发访问的资源叫做临界资源。多个线 ... -
java简介以及了解java(十九)
2009-08-14 14:19 800Java多线程编程进程,即运行中的程序,多任务操作系统中并发的 ... -
java简介以及了解java(十八)
2009-08-14 14:17 695在Java的图形编程中,所有动作(事件)都已经提供了相应的事件 ...
相关推荐
1. **Java简介**:Java是由Sun Microsystems开发的,后来被Oracle公司收购。它被设计成“一次编写,到处运行”,这意味着编写的代码可以在任何支持Java的平台上运行,无需重新编译。 2. **Java环境搭建**:学习如何...
接下来,了解Java的基础语法是关键。这包括: 1. **基本数据类型**:如整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。 2. **变量**:声明和初始化变量,理解其作用...
本资源包含几十个精心设计的Java简历模板,旨在帮助这个阶段的程序员更好地突出自己的专业能力,提高面试机会。 这些简历模板通常会涵盖以下几个关键部分: 1. **基本信息**:包括姓名、联系方式(电话、邮箱)、...
本文将深入探讨如何使用Java来快速导出大量数据到DBF文件,以及如何利用`javadbf.jar`库进行高效操作。 首先,DBF文件是基于dBase III、IV或FoxPro等早期数据库管理系统的文件格式。它以ASCII文本存储表格数据,...
这里不仅有Java基础知识的详细介绍,还有高级特性的深入解析,是Java开发者深入了解Java内部机制的首选之地。 ### 2. CN-Java 网址:http://www.cn-java.com/ CN-Java是一个专注于Java技术的中文社区,提供了丰富...
首先,我们需要了解Java处理大量数据的基本策略。在Java中,处理大数据的关键在于优化内存管理和批量操作。对于几百万条记录的数据,一次性加载到内存中可能会导致内存溢出,因此通常采用分批读取、流式处理或使用...
* Java开发职业发展道路:了解Java开发职业的发展道路,如从初级开发到高级开发的发展过程。 * Java开发职业规划:了解Java开发职业的规划,如职业发展目标、职业发展方向等。 * Java开发职业技能:了解Java开发职业...
"java脚本 快速学习"的压缩包可能包含了各种教程、示例代码和练习,帮助初学者快速掌握Java中的脚本使用和JavaScript的基本语法。建议从以下几个方面入手: 1. 学习JSAPI的使用方法,了解ScriptEngine接口和...
本项目提供了一个基于Java四层架构的报表生成示例,旨在帮助开发者快速理解和实现报表功能。 1. 表现层(Presentation Layer): 这是用户与应用程序交互的界面,负责接收用户输入,展示结果,并将用户的请求传递给...
下面我们将详细探讨Java2Pas的工作原理、使用方法以及其在IT领域的应用。 首先,Java和Delphi是两种不同的编程语言,它们有着不同的语法结构和编程模型。Java是一种面向对象的语言,由Sun Microsystems(现已被...
通过阅读《Java核心编程思想》,读者不仅能全面掌握Java语言,还能了解到许多最佳实践和设计模式,从而在实际项目开发中游刃有余。这本书的2010最新版可能还包含了Java新特性的介绍,比如Java 7和8的Lambda表达式、...
3. 集合框架:了解Java集合框架的知识,包括List、Set、Map等接口以及它们的实现类,对于编写高效的数据结构操作代码非常重要。 4. 异常处理:Java异常处理机制是保证程序健壮性的基础,理解throw、throws、try、...
《韩顺平30天学Java》是一门针对初学者设计的Java编程课程,旨在帮助学员在短短一个月的时间内掌握Java编程基础。该课程由知名IT教育专家韩顺平教授,以其独特的教学风格和深入浅出的讲解方式,使得复杂的编程概念变...
对于初学者来说,这是了解Java API的起点。 2. **类和接口**:这是文档的主体部分,详细列出了Java平台提供的所有类和接口。每个条目都包含了类或接口的定义、构造方法、方法、常量等详细信息。例如,`java.lang....
了解Matomo Java Tracker有助于提升Java开发者在Web分析领域的专业技能,对于面试来说,可以展示对用户行为跟踪、数据分析以及如何将这些知识应用于实际项目的能力。以下是一些可能的面试问题: 1. 如何使用Matomo ...
* Java基础语法:了解Java的基本语法结构,包括变量、数据类型、运算符、控制流语句、方法等 * 流程控制和方法:了解Java的流程控制语句和方法的使用 * 数组:了解Java的数组数据类型和操作 * 面向对象编程:了解...
1. **Java语言概述**:了解Java的历史、特性以及其在软件开发中的应用。Java是由Sun Microsystems的詹姆斯·高斯林(James Gosling)在1995年创建的,现在由Oracle公司维护。它的主要特点包括平台无关性(Write Once...
首先,我们需要了解Java数据库连接(JDBC)API,这是Java与数据库交互的标准接口。Java通过JDBC驱动程序与特定数据库通信。对于Sybase SQL Anywhere,我们需要的是对应的JDBC驱动,这里提供的`jconn3.jar`就是Sybase...
1. **Java简介**:介绍Java的历史、特点以及其在软件开发中的应用领域。Java由Sun Microsystems的詹姆斯·高斯林(James Gosling)于1995年推出,其设计目标是“一次编写,到处运行”。 2. **环境搭建**:讲解如何...