标签归档:数据结构

对一个未知类型的数据,进行java判断

常见的情况是,我们从mysql读出了数据,批量灌入到HASHMAP里,于是这个HashMap里,有int类型,有string,有boolean,有long 下面的函数,直接判断出数据的类型,方便我们做转义的操作。之前写过一个instanceof 的专门用法。 public static <T> String getType(T t){ if(t instanceof String){ return "string"; }else if(t instanceof Integer){ return "int"; }else if(t instanceof Boolean){ return "boolean"; }else{ return " do not know"; } } 一般这么用。 Iterator iter = h.entrySet().iterator(); while … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

java优先队列 PriorityQueue

PriorityQueue是个基于优先级堆的极大优先级队列。 此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序(参阅 Comparable), 也可以根据 Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。 依靠自然排序的优先级队列还不允许插入不可比较的对象(这样做可能导致 ClassCastException) 比如队列 1 3 5 10 2 自动会被排列 1 2 3 5 10 package com.javaer.examples.datastruct;   import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue;   import org.apache.poi.ss.formula.functions.Count;   public class PriorityQueueExample {   … 继续阅读

发表在 JAVA | 标签为 , , , , | 一条评论

java的栈学习

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。 栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。 栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。 package com.javaer.examples.datastruct;   import java.util.Stack;   public class StackExample {   /** * @param args */ public static void main(String[] args) { Stack s = new Stack(); Object o; s.push("1"); s.push("2"); o = s.push("3"); System.out.println(o);   … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java Queue函数大全及使用说明

在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。 Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用element()或者peek()方法。 值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。   1.入队列 offer(obj);   2.出队列 poll();   3.增加一元素 add(obj);   4.增加一集合 add(c);   5.读头元素 peek() or element()   6.取队列长度 size();   7.清队列 clear() import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue;   public class Main {   public static void main(String[] args) { … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论

采用LinkedList的java队列

Java队列 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。 队列空的条件:front=rear 队列满的条件: rear = MAXSIZE package com.javaer.examples.datastruct;   import java.util.LinkedList; import java.util.Queue;   public class QueueExample {   /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论