注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风的驿站

一徐清风,半指烛光,觥筹已净,只余茶香。残卷一章,妙趣非常,忽闻帘响,愿闻其详?

 
 
 

日志

 
 
关于我

喜欢写生 编程 音乐 设计 喜欢把自己的想法变成实实在在的东西 喜欢安静的做一些事情 CSDN博客:http://blog.csdn.net/qwertyupoiuytr

网易考拉推荐

【原创】Java常用数据结构一览  

2014-07-23 20:42:07|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

整理了一下Java中常用的数据结构的用法。

 

BitSet

当需要表示大量的二进制或者Boolean型数据时可以使用BitSetBitSet使我们不必使用位运算来得到位的值,并且其长度可以自增长。

下面是一个BitSet的使用小例子:

import java.util.*;

 

public class DemoMain {

     static BitSet on_off_set;

    

     public static void main(String[] args) {

           // TODO Auto-generated method stub

           on_off_set = new BitSet(10);

           on_off_set.set(5);

           on_off_set.set(30);

          

           printOnOffSet();

     }

 

     static void printOnOffSet() {

           for (int i = 0; i < on_off_set.length(); i++) {

                System.out.println(i + ":" + on_off_set.get(i));

           }

     }

}

除了上面的方法以外,BitSet还提供了clear()方法来去除某个index上的标记,使用and()or()xor()等方法来与另一个BitSet进行位运算,使用clone()进行复制,使用flip()进行翻转等等。

 

ArrayList
ArrayList
是一种可变长的数组数据结构,比数组更加灵活好用。

下面是一个使用示例:

ArrayList<String> arr = new ArrayList<String>(20);

arr.add("A");

arr.add("B");

arr.add("C");

arr.set(0, "A1");

 

for (int i = 0; i < arr.size(); i++) {

     System.out.println(arr.get(i));

}

 

int bIndex = arr.indexOf("B");

System.out.println(bIndex);

ArrayList可以使用泛型来确定其元素类型,也可以不指定泛型模板类。除了上面定义的方法,ArrayList中还定义了很多其他的方法,例如clear()clone()contains()isEmpty()lastIndexOf()remove()removeAll()subList()toArray()等有用的方法。

 

除了使用上面的方法来遍历ArrayList,还可以使用迭代器来遍历:

Iterator<String> iter = arr.iterator();

while(iter.hasNext()) {

     System.out.println(iter.next());

}

上面的代码同样可以不指定泛型模板类。

 

Stack

Stack,即堆栈,定义了一个先入后出的元素序列,下面是一个示例代码:

Stack<String> s = new Stack<String>();

s.push("A");

s.push("B");

String b = s.peek();

s.pop();

String a = s.pop();

s.empty();

StackArrayList一样,可以使用泛型定义,也可以不用。除了上面用到的方法,Stack类中还定义了很多其他的常用方法,例如search等,另外Stack还继承了Vector类的很多方法。

 

HashMap

HashMap实现Map接口,提供散列映射来存储键值对儿,散列映射的负载系数在0.0~1.0之间,系数越接近1.0,则散列的内存效率越高,查找效率越低,系数越接近0.0。散列映射提供三种构造函数:

HashMap hm = new HashMap();      //默认容量为16,负载系数默认为0.75

HashMap hm = new HashMap(30);        //容量30,负载系数默认为0.75

HashMap hm = new HashMap(30, 0.5);       //容量30,负载系数0.5

使用散列的好处是,在存储的时候,键值实际上是将对象散列为散列码来得到的,并不是通过比较对象和存储对象,这样做对效率就有很大的提升。

下面是散列的一个示例代码:

HashMap<String, Integer> hm = new HashMap<String, Integer>();

hm.put("A", 1);

hm.put("B", 2);

hm.put("C", 3);

hm.put("D", 4);

hm.put("E", 5);

int size = hm.size();

boolean isEmpty = hm.isEmpty();

Integer cCount = hm.get("C");

boolean isAIncluded = hm.containsKey("A");

boolean is3Included = hm.containsValue(3);

hm.clear();

 

上面就是Java中比较常用的数据结构,有问题欢迎留言。

  评论这张
 
阅读(66)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017