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中比较常用的数据结构,有问题欢迎留言。

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

Java常用数据结构总结

Java中有几种常用的数据结构,主要分为Collection和Map两个主要接口,而程序中最终使用的数据结构是继承自这些接口的数据结构类。其主要关系: 1、几个常用类的区别: 1.Arra...
  • wufaliang003
  • wufaliang003
  • 2017年02月16日 17:04
  • 1283

java 中几种常用数据结构

JAVA中常用的数据结构(java.util. 中) java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承...
  • u010947402
  • u010947402
  • 2016年07月11日 09:11
  • 55577

JAVA常用数据结构

线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以...
  • pgalxx
  • pgalxx
  • 2011年09月14日 21:33
  • 438

【java版】数据结构与算法分析学习之路【一】前言

一.数据结构和算法概述?【框范围】 基础数据结构主要包括表【数组+链表】、栈、队列【散列表】、树、图、堆。高级数据结构包括伸展树、红黑树、确定性跳跃表、AA树、treap树、k-d树、配对堆...
  • shengmingqijiquan
  • shengmingqijiquan
  • 2016年09月22日 09:48
  • 1383

Java常用数据结构

Java常用数据结构   资料:http://changhewang.blog.163.com/blog/static/1263662782010623373689/       Co...
  • cao478208248
  • cao478208248
  • 2014年04月10日 08:29
  • 435

java常用数据结构

 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在 java.util包中。本文试图通过简单的描述,向读者阐...
  • ronglian1234
  • ronglian1234
  • 2014年03月20日 17:54
  • 464

java常见数据结构总结

Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性。下面是面试Java核心技术的一些很实用的问题。 Q:最...
  • jiananmeide
  • jiananmeide
  • 2016年03月12日 21:37
  • 438

C++/Java中应该掌握的简单高效的数据结构

C++/Java中应该掌握的简单高校的数据结构 Motivation 博主是一个技能很low的数据狗,平时用Python用的最顺手啦,因为发现Python真得好用啊,只需要掌握三种简单的数据结构:L...
  • u014791046
  • u014791046
  • 2016年06月06日 15:56
  • 260

java常用数据结构---线性表---链式存储

public class Node {          Node next = null;     int data;     public Node(int data) {       ...
  • yinhua405
  • yinhua405
  • 2017年06月22日 09:10
  • 71

java常用数据结构排序算法

import java.util.*;public class TestSort1{ private int[] a = {9,5,8,2,1,4,3,7}; private int n = 8; p...
  • zyming0815
  • zyming0815
  • 2008年05月28日 21:46
  • 457
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java常用数据结构一览
举报原因:
原因补充:

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