Java常用数据结构一览

原创 2017年01月03日 20:24:14


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

 

BitSet

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

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

importjava.util.*;

 

publicclass 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));

}

 

intbIndex = 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");

Stringb = s.peek();

s.pop();

Stringa = 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);

intsize = hm.size();

booleanisEmpty = hm.isEmpty();

IntegercCount = hm.get("C");

booleanisAIncluded = hm.containsKey("A");

booleanis3Included = hm.containsValue(3);

hm.clear();

 

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS开发——OC常用的数据结构一览。

一.     在iOS开发中常用的结构体 1.    NSRange-一个范围结构体,location是位置,length是长度;{4,5},NSMakeRange(4,5);NSStringF...

Java中的数据结构一览

Java的类库实在是很多,以至于很多人都不太了解,结果总是自己造轮子。 下面汇总了Java中的一些数据结构,加上一些实现的分析,同时备忘。 至于时间复杂度,个人觉得写出来的用处不大。如果明白它是怎...

Java中的数据结构一览

Java的类库实在是很多,以至于很多人都不太了解,结果总是自己造轮子。 下面汇总了Java中的一些数据结构,加上一些实现的分析,同时备忘。 至于时间复杂度,个人觉得写出来的用处不大。如果明...

Java常用数据结构

之前总结的知识,借鉴了很多人的文章,时间有点久忘记了文章的出处,抱歉了。文章梳理了Collection 接口、Set接口、Map接口、List接口他们之间的关系,同时也对他们的实现类有了一个简单的介绍...

java常用的数组、字符串、集合操作以及数据结构与算法基本知识

java中常用封装的数组 、字符串、 集合来操作对象,但数据结构中常用的有栈和队列   数与图以及他们之间的排序,查找。         数组声明没有分配内存空间  只有创建或者是初始化时才分配,创建...
  • lu93it
  • lu93it
  • 2016-09-09 18:07
  • 2808

JAVA常用数据结构及原理分析

前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balabala讲了一堆,现在总结一下。java.util包中三个重要的接口及特点:List(列表)、Set(保证集合中元素唯一...

Java常用数据结构的总结

List/Map/String
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)