本文目录一览:
Java 常用数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
java 数据结构
first = first.setData(o);
由方法
public void setData(Object o)
{
data = o;
}
可知,setData(Object o)返回的是void,即不返回任何东西,你将它赋值给first自然出错
我建议你的类改成这样
public class Node()
{
Node first ;
Node next;
Object data;
public Node()
{
}
public Node(Object o)
{
this.setData(o);
}
public void setData(Object o)
{
data = o;
}
public Object getData()
{
return data;
}
public void setNext(Node next)
{
this.next= next;
}
public Node getNext()
{
return next;
}
public void setFirst(Node first)
{
this.first=first
}
public Node getFirst()
{
return first;
}
}
建议先理一下思路
对于小白的我学习java该怎样理解数据结构
在Java中的数据结构呢,主要是包括以下几种接口和类:枚举,位集合,向量,栈,字典,哈希表,属性。
下面来简单理解下这些类的关键点在哪里。
枚举:
枚举借口虽然它本身不属于数据结构,但它在其他数据结构的范畴里面试应用非常广的。枚举接口定义了一种从数据机构中取回连续元素方式。
例如,枚举定义了一个叫nextelement的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。
位集合:
位集合类实现了一组可以单独设置和清楚的位和标志。该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一“位”,然后对位进行适当的设置或者清除,就可以对布尔值进行操作了。
向量:
向量类和传统数组非常相似,但是vector的大小能根据需要动态的变化。和数组一样,Vector对象的元素也能通过索引访问。
使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。
栈:
栈实现了一个后进先出的数据结构。你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。
当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。
字典:
字典类是一个抽象类,他定义了键映射到值的数据结构当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary。
由于Dictionary类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。
哈希表:
Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而不是通过人名。
哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。
属性:
Properties 继承于 Hashtable.Properties 类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。
Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。
Java的数据结构你用过哪些?Map与Set的本质区别是什么?
java中常见的数据结构有:
数组
集合类——Collection(list(ArrayList,LinkedList),set(HashSet))
List 是链表(接口),是可以允许出现重复值的。它的具体实现类:ArrayList和LinkedList
set 是集合(接口),不允许出现重复值。它的具体实现类HashMap
ArrayList 实现链表的内部结构是用数组(Array)。查找高效,修改低效
LinkedList 实现链表的内部结构是链表(Linked)。查找低效,修改高效
set是集合(接口),不允许出现重复值
Iterator迭代器
简介:java提供的迭代器接口进行java collection的遍历。Iterator模式是用于遍历类的标准访问方法
所有的继承Coollection的集合类子类,都有Iterator()方法用于反馈迭代器,程序额可以获取这个迭代器对象对Collection对象中的元素进行遍历。
键值对容器 ——Map
Map是一种把键对象和值对象进行关联的容器
指出:像set一样,一个Map容器中的键对象不允许重复,这是为了保证查找结果的一致性。