java数据结构讲述之链表
关于java的链表思想
先可看以下例子
先建立一个实例(Student.java)
package com.yz.mylink;
public class Student {
private Integer id;
private String name;
private Integer age;
private String classes;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
}
建立节点(Node.java)
package com.yz.mylink;
public class Node {
Object data;
Node next;
public Node(Object data){
this.data=data;
next=null;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
建立调用方法 (Link.java)
package com.yz.mylink;
public class Link {
Node head;
public Link(){
head=new Node(null);
}
/*
* 追加
*/
public void addNode(Object data){
Node p=head;
while(true){
if(p.getNext()!=null){
p=p.getNext();
}else{
p.setNext(new Node(data));
break;
}
}
}
public void addNode(Integer id,Object data){
Node p=head;
while(true){
if(p.getNext()!=null){
p=p.getNext();
Student stu=(Student) p.getData();
if(stu.getId()==id){
Node mynode=new Node(data);
mynode.setNext(p.getNext());
p.setNext(mynode);
break;
}
}else{
break;
}
}
}
/*
* 删除指定元素
*/
public void delNodestu(Integer id){
Node p=head;
while(true){
if(p.getNext()!=null){
Node pp=p.getNext();
pp=p.getNext();
Student stu=(Student) pp.getData();
if(stu.getId()==id){
p.setNext(p.getNext().
相关文档:
1 如果一块内存区域能够重复利用,最好不要申请新的。这个内存区域有可能是系统的一个类,自己的一个内部有数组元素,或者能够放大量数据的结构。
2 最好不要在循环里面申请内存,循环越大,越坏事。换句话说,申请内存频率别太高。好比一个人每顿吃两碗饭正好,身体的消化系统可以承受,如果让他一顿把十顿的都吃掉,不胀 ......
package com.deng.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestOracle {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriv ......
1)静态变量本身不会被回收
2)静态变量所引用的对象是可以回收的。
第一点大家应该没有疑问,下面我证明第2点:
看下面的例子及注释。自己可以运行试一下, 注意加上-verbose:gc参数
java -verbose:gc TestStaticGc
// TestStaticGc.java
public class TestStaticGc {
& ......
数据结构和算法
冒泡:每次比较都可找出最大或最小的,有序的在最右边
选择排序:有序的在最左边
插入排序:速度比冒泡快一倍,比选择也快。
递归
调用自身
汉诺塔问题:
/**
* @汉诺塔的问题
*/
......