Comparable接口、Set接口、Map接口、list接口及 泛型

comparable接口
实现comparable接口的类,对象之间可以比较大小。
comparable接口中只有一个方法
    public int compareto(object obj);
    该方法:返回 0 表示this == obj
            返回正数表示this > obj
            返回负数表示this > obj
实现了comparable接口的类通过compareto方法确定对象的排序方式。
可以通过sort()方法排序。

数据结构的选择:
衡量标准:读的效率和改的效率
    array读快写慢
    linked改快读慢
    hash两者之间

 

map接口
实现了map接口的类用来存储键-值对。
map接口的实现类有hashmap和treemap等。
map类中存储的键-值对通过键来标识,所以键值不能重复。

object put(object key,object value);//如果key已经存在,则返回原key的值value
object get(object key);
object remove(object key);
boolean containskey(object key);
boolean containsvalue(object value);
int size();
boolean isempty();
void putall(map t);
void clear();

用hashcode()方法来比较。

 

泛型:
增强程序的可读性和稳定性
在定义集合时同时定义集合中对象的类型
示例:

import java.util.*;
public class testargswords{
    private static final int one = 1;
    public static void main(string[] args){
        map<string, integer> m =new hashmap<string, integer>(); //泛型
        for(int i = 0;i < args.length;i++){
            int freq = (integer) m.get(args[i]) == null ? 0:(integer) m.get(args[i]);
            m.put(args[i], freq + 1);
        }
        system.out.println(m.size() + " distinct words detected:");
        system.out.println(m);
    }
}

可以在定义collection的时候指定
也可以在循环时使用iterator指定

list接口

list接口是collection的子接口,实现list接口的容器类中的元素是有顺序的,而且可以重复。
list容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。
jdk所提供的list容器类有arraylist,linkedlist等。

object get(int index); 

object set(int index, object element); 

void add(int index, object element); 

object remove(int index); 

int indexof(object o); 

int lastindexof(object o);
  

list常用算法:
类java.util.collections提供了list里常用的算法:

void sort(list);  //对list容器内的元素排序 

void shuffle(list); //对list容器内的对象进行随机排序 

void reverse(list); //对list容器内的对象进行逆序排序 

void fill(list, object); //用一个特定的对象重写整个list容器 

void copy(list dest,list src); //将src list容器内容拷贝到dest list容器 

int binarysearch(list,object); //对顺序的list容器,采用折半查找的方法查找特定对象

set接口及其实现子类

set接口是collection的子接口,set接口没有提供额外的方法,但实现set接口的容器类中的元素师没有顺序的,而且不可以重复。

set容器可以与数学中的“集合”的概念相对应。jdk api中提供的set容器类有hashset,treeset等。

例子:

 

import java.util.*;public class testset{    public static void main(string[] args){        set s1 = new hashset();        set s2 = new hashset();        s1.add("a");s1.add("b");s1.add("c");        s2.add("d");s2.add("a");s2.add("b");                set sn = new hashset(s1);        sn.retainall(s2); //求交集        set su = new hashset(s1);        su.addall(s2);   //求并集        system.out.println(sn);        system.out.println(su);    }}

 

时间: 2024-11-05 20:28:49

Comparable接口、Set接口、Map接口、list接口及 泛型的相关文章

程序中调用webservice接口返回null,但同一接口用SOAPtest测试可以正常返回值???

问题描述 语言C#,调用接口的语句如下:interrorcode=s.getSubscribAllSvc(userid,-1,-1,outsvclist);其中svclist的结构类似subscriberAllSvcList:subscriberAllSvc:svcID:svcName:svcStatus:quotaType:quotaLeft:supplementLeft:unsubsriptionDate:subscriberAllSvc:svcID:svcName:svcStatus:qu

php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)_php实例

怎么调用微信高级接口 微信高级接口和微信普通接口的区别 后台服务器可以调用微信的接口与微信用户进行讯息的通信,这样的行为就是在调用微信的接口,这些接口是基础接口,你不需要任何付费行为或者身份认证行为就可以调用.但是有一些高级接口,你的微信公众号必须达到一定的权限如通过微信认证才能调用自定义菜单.微信支付等高级功能. 不过微信公众帐号的测试号系统可以应用这些高级接口(微信支付等涉及交易的接口除外). 微信高级接口的调用 微信高级接口的调用需要先调用一个token_access接口,只有先调用这个接

一个类实行了接口,也可以成为这个接口的子类的?

问题描述 一个类Super中 有实例变量的接口InterfaceA,InterfaceB 然后子类Son继承了这个类 相应的实例变量是实行了父类的接口 A,B ,这样也可以的?小弟写了下列这些类和接口:package designPatterns;两个接口InterfaceA, InterfaceB:public interface InterfaceA {      void methodA();}public interface InterfaceB { void methodB();}两个

iPhone 5数据线接口规格变小,新接口可双面使用

正如之前传言说的那样,苹果在这发布会上改变了它产品 基座连接器的规格.过去的30pin接口不复存在,取而代之的将是和iPhone 5相匹配的8pin接口.国外一个叫做NoWhereElse的法语网站 曝光了许多关于新接口的细节照片,让我们能够更仔细的看一下这个新数据线接口到底长成了什么样. 苹果新产品接口图片也许是因为新数据线接口的面积较之前的接口相比小了约80%,采用全数字技术,并且可以更方便地双面使用,所以才被命名为Lightning(闪电).更为小巧的设计以及更为先进的技术,的确和闪电的迅

怎么调用 ace++接口-android怎么上传图片到FACE++ 接口返回年龄信息,我已经有账号,求大神指点 小弟感激不尽

问题描述 android怎么上传图片到FACE++ 接口返回年龄信息,我已经有账号,求大神指点 小弟感激不尽 android怎么上传图片到FACE++ 返回年龄信息,我已经有账号,求大神指点 小弟感激不尽 解决方案 http://www.cnblogs.com/mainroadlee/archive/2013/10/26/android_sdk_face_detection.html 解决方案二: FACE++的作用就是把图片上的人物识别出来,然后返回给你一个json字符串,里面包括一些列的信息

webservice接口开发-Webservice开发单点登录接口怎么实现,有具体代码实例更好

问题描述 Webservice开发单点登录接口怎么实现,有具体代码实例更好 现在要实现一个单点登录功能的接口,请问该如何实现这个功能?使用webservice开发的接口来实现它. 解决方案 既然是两个工程,那就一个做客户端,一个做服务端了,服务端可以把服务发布出来,客户端进行调用,就可以了啊,分布式开发.. 解决方案二: 你去东软帝国这个网站看看,里面有一个,不值得是不是基于webservice的

网站中的jsp页面接入到支付宝网关接口、易宝支付网关接口?

问题描述 支付宝网关接口的详细规范?以及接入的时候需要注意的一些事项,如何做好关键性的测试? 解决方案 解决方案二:找支付宝要吧,可以得到,而且一般都会提供给你用于测试的地址解决方案三:谢谢!!!

航天金税接口系统、防伪开票接口系统、税控机接口系统、防伪税控接口系统

问题描述 企业日常所用的管理系统如财务管理系统.销售管理系统等均为通用商业软件,而防伪税控开票系统(即防伪税控机)为税务系统专用软件.众所周知,这两个系统之间存在着这样密不可分的关系:销售管理系统能实现对企业销售业务的全程处理和跟踪,并已形成了企业完整的销售记录,防伪税控开票系统根据企业的销售记录开具增值税专用发票.但由于特殊的原因,致使这两个本应紧密联系的系统之间存在相对独立,无法实现数据共享:虽然管理信息系统已完整的记录了企业销售数据,但财务人员开具增值税专用发票时仍需在税控机键盘上手工输入

微信公众平台消息接口开发(12)消息接口Bug

微信公众平台开发模式 微信公众平台消息接口 微信公众平台API 微信开发模式 Bug 方倍工作室 原文:http://www.cnblogs.com/txw1958/archive/2013/03/16/weixin-if12-bug.html     自己看吧,不做说明了.  

【java】接口的作用|实例讲解java接口

接口作用: 解决java不能多继承,用过接口变相实现多继承. 屏蔽实现的不同的差异 接口实例 现在假如说,java想让oracle和mysql实现自己的数据源和关闭数据源,java只需要做一个接口interface出来.而oracle和mysql自己去实现这个接口即可. ok  下面先上一个组织结构,需要用到工厂模式. 总共三个包,分别是 接口包 com.rs.biz 工厂包com.rs.factory 实现类com.rs.impl 最后一个是测试类. 第二步,开始写接口DateBase.jav