java之容器
先来一张容器的API框架图,我们在java中所学的所有知识,都是根据下面这张图来学习的....

容器API:
1、Collection接口------定义了存储一组对象的方法,其子接口Set和List分别定义了存储的方式。
①、Set中的数据对象没有顺序且不可以重复。
②、List中的数据对象有顺序且可以重复。
2、Map接口定义了存储“键(key)---值(value)映射对”的方法。
Collection接口:
Collection接口中定义的方法(意思就是只要你实现了Collection接口,你将拥有下面所有方法):

Collection方法举例:
这里要说明的就是集合里面只能装引用类型的数据。
import java.util.*;
public class TestCollection{
public static void main (String args[]){
Collection collection = new ArrayList();
//可以放入不同类型的对象
collection.add("hello");
collection.add(new Person("f1",18));
collection.add(new Integer(100));
System.out.println(collection.size());
System.out.println(collection);
}
}
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
}
接下来,我们继续使用上面的例子,说说Collection里面remove()方法的使用:
import java.util.*;
public class TestCollection{
public static void main (String args[]){
Collection collection = new HashSet();
//可以放入不同类型的对象
collection.add("hello");
collection.add(new Person("f1",18));
collection.add(new Integer(100)); collection.remove("hello");
collection.remove(new Integer(100)); System.out.println(collection.remove(new Person("f1",18)));
System.out.println(collection);
}
}
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
/*public boolean equals(Object obj){
if(obj instanceof Person){
Person person = (Person)obj;
return (name.equals(person.name) && age == person.age);
}
return super.equals(obj);
}
public int hashCode(){
return name.hashCode();
}*/
}
执行上面的例子,你会发现我们插入的数据”hello“和new Integer(100)都可以用remove()方法直接删除,但是对于new person("f1",18)这对象可以用remove()方法直接删除吗?答案是不可以的....
容器类对象在调用remove、contains等方法时需要比较对象是否相等,这会涉及到对象类型的equals方法和hashCode方法;对于自定义的类型,需要重写equals方法和hashCode方法以实现自定义对象相等规则。
注意,相等的对象应该具有相等的hash Codes
Ieterator接口(简单说:Iterator就是一个统一的遍历我们集合中所有元素的方法)
1、所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象。
2、Iterator对象称作迭代器,用以方便的实现对容器元素的遍历实现。
3、Iterator实现了下列方法:

下面我们写一个用Iterator遍历集合元素的方法。(注:程序运行信息输出顺序可能跟我们输入的顺序不一致,这就是Set集合无序的效果)
import java.util.*;
public class TestCollection{
public static void main (String args[]){
Collection collection = new HashSet(); collection.add(new Person("zhang",1));
collection.add(new Person("gao",2));
collection.add(new Person("wang",3));
collection.add(new Person("du",4));
collection.add(new Person("liang",5));
collection.add(new Person("li",6)); Iterator iterator = collection.iterator();
while(iterator.hasNext()){
//next()的返回值类型是Object类型,需要转换为相应类型
Person person = (Person)iterator.next();
System.out.println(person.name);
}
}
}
class Person{
public String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
Set接口
1、Set接口是Collection的子接口,Set接口没有提供的额外方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可以重复
2、Set接口可以与数学中”集合“的概念相对应。
3、J2SDK API中所提供的容器类有HashSet、TreeSet等...
Set方法举例:

Set方法举例:

List接口:
1、List接口是Collection的子接口,实现List接口的容器类中元素是有顺序的,而且可以重复。
2、List容器中元素都对应一个整数型的序号记载其在内容中的位置,可以根据序号存取容器中的元素。
3、L2SDK所提供的List容器类有ArrayList,LinkedList等...
List 方法举例:

List常用算法:

List常用算法举例:

java之容器的更多相关文章
- JAVA的容器---List,Map,Set (转)
JAVA的容器---List,Map,Set Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashM ...
- Java集合容器简介
Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),Attr ...
- [转载]四大Java EE容器
转载自: https://my.oschina.net/diedai/blog/271367 现在流行的Java EE容器有很多:Tomcat.JBoss.Resin.Glassfish等等.下面对这 ...
- 转 四大Java EE容器(Tomcat、JBoss、Resin、Glassfish)之简单比较
现在流行的Java EE容器有很多:Tomcat.JBoss.Resin.Glassfish等等.下面对这四种Java EE容器进行 ...
- java并发容器(Map、List、BlockingQueue)
转发: 大海巨浪 Java库本身就有多种线程安全的容器和同步工具,其中同步容器包括两部分:一个是Vector和Hashtable.另外还有JDK1.2中加入的同步包装类,这些类都是由Collectio ...
- Spring @Bean注解 (基于java的容器注解)
基于java的容器注解,意思就是使用Java代码以及一些注解,就可以取代spring 的 xml配置文件. 1-@Configuration & @Bean的配合 @Configuration ...
- 各种容器与服务器的区别与联系:Servlet容器、WEB容器、Java EE容器、应用服务器、WEB服务器、Java EE服务器
1.容器与服务器的联系 如上图,我们先来看下容器与服务器的联系:容器是位于应用程序/组件和服务器平台之间的接口集合,使得应用程序/组件可以方便部署到服务器上运行. 2.各种容器的区别/联系 2-1.容 ...
- 四大Java EE容器(Tomcat、JBoss、Resin、Glassfish)之简单比较
转自:http://www.cxybl.com/html/bcyy/java/201106241007.html 现在流行的Java EE容器有很多:Tomcat.JBoss.Resin.Glassf ...
- 各种容器与服务器的区别与联系 Servlet容器 WEB容器 Java EE容器 应用服务器 WEB服务器 Java EE服务器
转自:https://blog.csdn.net/tjiyu/article/details/53148174 各种容器与服务器的区别与联系 Servlet容器 WEB容器 Java EE容器 应用服 ...
- 【Java web 容器resin的安装】
#resin的安装 #启动resin #访问resin监听的java web容器端口 resin修改端口监听号
随机推荐
- git删除push到远程服务器的commit
如果不小心把不该提交的代码或者敏感的数据(如密码)提交到远程git服务器上,可以使用git reset回滚到上一个commit,并且commit history不留下任何痕迹. 具体做法: # 1.通 ...
- Linux:文件类型和权限
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件.
- JS结构
当前页面的JS结构如下: <script> /* 这是立即执行的方法 */ (function () { /* 这是初始化表格 */ var init = fun ...
- paip.php 与js 的相似性以及为什么它们这么烂还很流行。。
paip.php 与js 的相似性以及为什么它们这么烂还很流行.. php与js异常的流行,web 90%都被他们统治了.发现了他们有意思的一些共性.. 结构一番总结,得出了它们共有的特点.特性: = ...
- 取消 virtualStore 注册表[启用和禁止 UAC虚拟化]
近日发现,在win2008R2 x64下运行的服务器程序,其注册表读取路径为: [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1] 但是经 ...
- EMW 性能优化二之---并发配置
EMW 性能优化二之---并发配置 在前一个日志中写到交货的异步更新,对于RFUI RF的前台操作会提升效率,异步更新不用等待更新状态的返回,启用更新队列的方式执行(SM13). 下面再补全性能相关的 ...
- WIN7、WIN8 右键在目录当前打开命令行Cmd窗口(图文)
Win7系统大家习惯“Win+R”的组合键打开命令提示符. 通常右击文件夹是没有进入命令行 进入某个文件夹里面,先按住Shift键,然后鼠标右键,出现选项“在此处打开命令窗口(W)”也可以打开命令行. ...
- 用thinkphp写的一个例子:抓取网站的内容并且保存到本地
我需要写这么一个例子,到电子课本网下载一本电子书. 电子课本网的电子书,是把书的每一页当成一个图片,然后一本书就是有很多张图片,我需要批量的进行下载图片操作. 下面是代码部分: public func ...
- 和View Controllers一起工作
在这一课中,你会继续在FoodTracker菜谱的场景工作.你会重新安排现有的UI元素并使用图像采集器添加到照片用户界面.当你完成,你的应用程序将是这个样子: 学习目标 在课程结束时,你将能够: 了解 ...
- LogViewer - 方便的日志查看工具
一个完整的程序日志记录功能是必不可少的,通过日志我们可以了解程序运行详情.错误信息等,以便更好的发现及解决问题. 日志可以记录到数据库.日志服务器.文件等地方,本文主要介绍文件日志. 文件日志通常是一 ...