您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

java集合类图文教程

2024/6/29 1:47:49发布27次查看
java集合类详解:(推荐:java视频教程)
1、java集合类图
上述类图中,实线边框的是实现类,比如arraylist,linkedlist,hashmap等,折线边框的是抽象类,比如abstractcollection,abstractlist,abstractmap等,而点线边框的是接口,比如collection,iterator,list等。
发现一个特点,上述所有的集合类,都实现了iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashnext(),next(),remove()三种方法。
它的一个子接口linkediterator在它的基础上又添加了三种方法,分别是add(),previous(),hasprevious()。也就是说如果是先iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口。
比如hashset,hashmap;而那些元素有序的集合,实现的一般都是linkediterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个元素,比如arraylist。
还有一个特点就是抽象类的使用。如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作流大大降低。
2、详解
 2.1hashset
hashset是set接口的一个子类,主要的特点是:里面不能存放重复元素,而且采用散列的存储方法,所以没有顺序。这里所说的没有顺序是指:元素插入的顺序与输出的顺序不一致。
代码实例:hashsetdemo
package edu.sjtu.erplab.collection;import java.util.hashset;import java.util.iterator;import java.util.set;public class hashsetdemo {    public static void main(string[] args) {        set<string> set=new hashset<string>();                set.add(a);        set.add(b);        set.add(c);        set.add(c);        set.add(d);                //使用iterator输出集合        iterator<string> iter=set.iterator();        while(iter.hasnext())        {            system.out.print(iter.next()+ );        }        system.out.println();        //使用for each输出结合        for(string e:set)        {            system.out.print(e+ );        }        system.out.println();                //使用tostring输出集合        system.out.println(set);    }}
代码实例:settest
package edu.sjtu.erplab.collection;import java.io.fileinputstream;import java.io.filenotfoundexception;import java.io.inputstream;import java.util.hashset;import java.util.iterator;import java.util.scanner;import java.util.set;public class settest {    public static void main(string[] args) throws filenotfoundexception {        set<string> words=new hashset<string>();        //通过输入流代开文献        //方法1:这个方法不需要抛出异常        inputstream instream=settest.class.getresourceasstream(alice.txt);                //方法2:这个方法需要抛出异常        //inputstream instream = new fileinputstream(d:\\documents\\workspace\\javastudy\\src\\edu\\sjtu\\erplab\\collection\\alice.txt);        scanner in=new scanner(instream);        while(in.hasnext())        {            words.add(in.next());        }                iterator<string> iter=words.iterator();                for(int i=0;i 0) {            size = integer.parseint(args[0]);        }        key[] keys = new key[size];        weakhashmap<key, value> whm = new weakhashmap<key, value>();        for (int i = 0; i < size; i++) {            key k = new key(integer.tostring(i));            value v = new value(integer.tostring(i));            if (i % 3 == 0) {                keys[i] = k;//强引用            }            whm.put(k, v);//所有键值放入weakhashmap中        }        system.out.println(whm);        system.out.println(whm.size());        system.gc();                try {            // 把处理器的时间让给垃圾回收器进行垃圾回收            thread.sleep(4000);        } catch (interruptedexception e) {            e.printstacktrace();        }                 system.out.println(whm);        system.out.println(whm.size());    }}class key {    string id;    public key(string id) {        this.id = id;    }    public string tostring() {        return id;    }    public int hashcode() {        return id.hashcode();    }    public boolean equals(object r) {        return (r instanceof key) && id.equals(((key) r).id);    }    public void finalize() {        system.out.println(finalizing key  + id);    }}class value {    string id;    public value(string id) {        this.id = id;    }    public string tostring() {        return id;    }    public void finalize() {        system.out.println(finalizing value  + id);    }}
比较
更多java相关文章请关注java基础教程栏目。
以上就是java集合类图文教程的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product