「objnode在JAVA」no obj

博主:adminadmin 2022-12-14 10:18:11 60

今天给各位分享objnode在JAVA的知识,其中也会对no obj进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

链表问题啊!Java方面的

第一个提问的注释处,因为链表的每一个结点都是Node型,所以用Node定义next.它在那一行的时候只是一个属性,就是每一个结点都会有下一个结点这样一个属性.如果next=null那么它就是尾结点,

第二个提问的注释处,是的不能取到size的大小,像数组一样是从0开始.

第三个提问的注释处,用new 是构造了新的Node对象,括号里的参数是构造方法用的.构造方法是没有返回值的,但是构造方法内部的语句如next=nextval一样会执行,

第四个提问的注释处,那一行执行报错是因为你的LinList1是虚拟类,是不能创建对象的.所以去掉public abstract class LinList1 implements List 这里面的abstract关键字

怎么把数据库内容写到xml文件中?

网上的,可以参考一下

%

’by dicky 2005-03-22 21:52:18 am qq:25941 e-mail:applebbs@gmail.com

const issql = 1 ’定义数据库类型为sql server

call openconn(conn) ’打开数据库连接

dim rs,sql

set rs = server.createobject("adodb.recordset")

sql = "select * from products order by productname"

rs.open sql,conn,1,1 ’以只读方式查询数据记录

if rs.eof then

response.write "sorry,no record!" ’如果没有记录

else

dim objxmldom, objrootnode, objnode

set objxmldom = server.createobject("msxml2.domdocument") ’创建xml文件对象

set objrootnode = objxmldom.createelement("xml") ’创建根节点

objxmldom.documentelement = objrootnode

do while not rs.eof ’循环出所有记录

’ response.write rs("productname") "br"

set objrownode = objxmldom.createelement("row") ’创建父节点

set objnode = objxmldom.createelement("productname") ’创建子节点

objnode.text = rs("productname")

objrownode.appendchild(objnode)

set objnode = objxmldom.createelement("unitprice")

objnode.text = rs("unitprice")

objrownode.appendchild(objnode)

set objnode = objxmldom.createelement("unitsinstock")

objnode.text = rs("unitsinstock")

objrownode.appendchild(objnode)

objrootnode.appendchild(objrownode)

rs.movenext:loop ’循环结束

objxmldom.save "d:\myxmldoc.xml" ’写入xml文件 能用变量让用户在页面上自定义文件名

response.write "scriptalert(’恭喜,写入xml文件成功!’);/script"

set objnode = nothing ’销毁对象

set objrownode = nothing ’销毁对象

set objrootnode = nothing ’销毁对象

end if

rs.close

set rs = nothing

call closeconn() ’关闭数据库连接

function openconn(conn) ’打开数据库连接

dim connstr

if issql = 1 then ’如果是sql server数据库

’sql server数据库连接参数:用户名、用户密码、数据库名、连接名(本地用local,外地用ip)

dim sqlusername,sqlpassword,sqldatabasename,sqllocalname

sqlusername = "sa"

sqlpassword = ""

sqldatabasename = "northwind"

sqllocalname = "(local)"

connstr = "provider = sqloledb; user id = " sqlusername "; password = " sqlpassword "; initial catalog = " sqldatabasename "; data source = " sqllocalname ";"

else ’如果是access数据库

dim db

’第一次使用请修改本处数据库地址并相应修改数据库名称,如将dicky.mdb修改为dicky.asp(防止恶意下载access数据库)

db = "dicky.mdb"

connstr = "provider = microsoft.jet.oledb.4.0;data source = " server.mappath(db)

end if

on error resume next

set conn = server.createobject("adodb.connection")

conn.open connstr

if err then

’ err.clear

set conn = nothing

response.write "数据库连接出错,请检查连接字串。"

response.end

end if

set rs = server.createobject("adodb.recordset")

end function

function closeconn() ’关闭数据库连接

conn.close

set conn = nothing

end function

%

用JAVA编写链表类,要求编写能够从头部添加节点。

public class ZLinkedList {

private int size;

private Node head;

public ZLinkedList(){

size = 0;

}

public void headInsert(Object obj){

//if(null== obj) {// do something}

Node temp = new Node(obj);

if(size ==0){

head = temp;

}else{

temp.setNext(head);

head = temp;

}

size++;

}

public void preOrder(){

int length = size;

Node temp = head;

for(int i= 0;i  length;i ++){

System.out.println(temp.getValue());

temp = temp.getNext();

}

}

private static class Node{

private Object value;

private Node next;

Node(){

}

Node(Object val){

this.value = val;

}

public Object getValue() {

return value;

}

public void setValue(Object value) {

this.value = value;

}

public Node getNext() {

return next;

}

public void setNext(Node next) {

this.next = next;

}

}

public static void main(String[] args) {

ZLinkedList test = new ZLinkedList();

test.headInsert("1");

test.headInsert("2");

test.headInsert("3");

test.preOrder();

}

}

java单链表实现时 current.setNext(new Node(obj,current.next)); 出现了 java.lang.NullPointerExcept

先检查下 size 控制的对不对,还有 下标 是从0 开始 还是从1开始,然后 最有可能的错误就在 setNext 中 ,笨的检查方法,是 多写几个输出语句,看到哪里输出异常了

用Java语言实现单向链表

1.先定义一个节点类

package com.buren;

public class IntNode {

//定义一个节点类

int

info;

//定义属性,节点中的值

IntNode next;

//定义指向下一个节点的属性

public IntNode(int

i){ //构造一个next为空的节点

this(i,null);

}

public IntNode(int i,IntNode

n){ //构造值为i指向n的节点

info=i;

next=n;

}

}

2.再定义一个链表类,这是主要部分

package com.buren;

public class IntSLList {

private IntNode head,tail;

//定义指向头结点和尾结点的指针,

//如果大家看着这个不像指针的话,那就需要对指针有更深刻的了解

public

IntSLList(){

//定义一个空节点

head=tail=null;

}

public boolean

isEmpty(){

//判断节点是否为空

return

head==null;

//这行代码看起来似乎很神奇,其实真的很神奇,偶是服了

}

public void addToHead(int el){

//将el插入到头结点前

head=new

IntNode(el,head);

//将节点插入到头结点前,作为新的投节点

if(head==tail){

//给空链表插入节点时

tail=head;

//头结点和尾结点指向同一个节点

}

}

public void addToTail(int

el){

//向链表的尾部增加结点

if(!isEmpty()){

//判断链表是否为空

tail.next=new

IntNode(el);

//新建立一个值为el的节点,将链表的尾结点指向新节点

tail=tail.next;

//更新尾指针的指向

}else{

head=tail=new

IntNode(el);

//如果链表为空,新建立一个节点,将头尾指针同时指向这个节点

}

}

public int

deleteFromHead(){

//删除头结点,将节点信息返回

int

el=head.info;

//取出节点信息

if(head==tail){

//如果链表中只有一个节点

head=tail=null;

//删除这一个节点

}else{

head=head.next;

//如果链表中不止一个节点,将头结点的下一个节点作为头结点

}

return

el;

//返回原头结点的值

}

public int

deleteFromTail(){

//删除尾结点,返回尾结点的信息

int

el=tail.info;

//取出尾结点的值

if(head==tail){

// 如果链表中只有一个节点

head=tail=null;

//删除这个节点

}else{

IntNode

temp;

//定义中间变量

for(temp=head;temp.next!=tail;temp=temp.next);

//找出尾结点的前一个节点,注意最后的分号,

//这个for循环是没有循环体的,目的在于找出尾结点的前一个节点

//在整个程序中用了很多次这样的写法,相当经典啊

tail=temp;

//将找出来的节点作为尾结点,删除原来的尾结点

tail.next=null;

//将新尾结点的指向设为空

}

return

el;

//返回原尾结点的信息

}

public void

printAll(){

//打印链表中所有节点的信息

if(isEmpty()){

//如果链表为空

System.out.println("This

list is

empty!");

//输出提示信息

return;

//返回到调用的地方

}

if(head==tail){

//当链表中只有一个节点时

System.out.println(head.info);

//输出这个节点的信息,就是头结点的信息

return;

}

IntNode

temp;

//定义一个中间变量

for(temp=head;temp!=null;temp=temp.next){

//遍历整个链表

System.out.print(temp.info+"

");

//输出每个节点的信息

}

System.out.println();

//输出一个换行,可以没有这一行

}

public boolean isInList(int

el){

//判断el是否存在于链表中

IntNode

temp;

//定义一个中间变量

for(temp=head;temp!=null

temp.info!=el;temp=temp.next);

//将el找出来,注意最后的分

return

temp!=null;

// 如果存在返回true,否则返回flase,这两行代码很有思想

}

public void delete(int

el){

//删除链表中值为el的节点

if(head.info==el

head==tail){

//如果只有一个节点,并且节点的值为el

head=tail=null;

//删除这个节点

}else

if(head.info==el){

// 不止一个节点,而头结点的值就是el

head=head.next;

//删除头结点

}else{

IntNode

pred,temp;

//定义两个中间变量

for(pred=head,temp=head.next;temp.info!=el

temp.next!=null;pred=pred.next,temp=temp.next);

//跟上面的类似,自己琢磨吧,也是要注意最后的分号

pred.next=temp.next;

//将temp指向的节点删除,最好画一个链表的图,有助于理解

if(temp==tail){

//如果temp指向的节点是尾结点

tail=pred;

//将pred指向的节点设为尾结点,

}

}

}

//下面这个方法是在链表中值为el1的节点前面插入一个值为el2的节点,

//用类似的思想可以再写一个在链表中值为el1的节点后面插入一个值为el2的节点

public boolean insertToList(int el1,int

el2){

//定义一个插入节点的方法,插入成功返回true,否则返回false

IntNode

pred,temp; //定义两个中间变量

if(isEmpty()){

//判断链表是否为空

return

false;

//如果链表为空就直接返回false

}

if(head.info==el1

head==tail){

//如果链表中只有一个节点,并且这个节点的值是el1

head=new

IntNode(el2,head);

//新建立一个节点

return

true;

}else if(head.info==el1){

IntNode t=new

IntNode(el2);

t.next=head;

head=t;

return

true;

}else{

for(pred=head,temp=head.next;temp!=null

temp.info!=el1;pred=pred.next,temp=temp.next);

if(temp!=null){

IntNode

a=new IntNode(el2);

pred.next=a;

a.next=temp;

return

true;

}else{

System.out.println(el1+"

NOT EXEISTS!");

return

false;

}

}

}

3.下面是测试代码

public static void main(String[] args){

IntSLList test=new

IntSLList();

//test.addToHead(7);

test.addToTail(7);

System.out.println(test.insertToList(7,5));

test.printAll();

System.out.println(test.isInList(123));

}

}

java 怎样捕获异常后,程序不中止,继续执行,返回参数

你把 temp定义到try之外。然后在遇到异常后,给temp赋值,不要在catch中写什么return就行。

例如:

……………………

Document objDOM = DocumentHelper.createDocument();

String temp ="";

try{

……

}catch (DocumentException e)

{

temp = "error";

}

Node node = objDOM.selectSingleNode("//"+temp);

……………………

关于objnode在JAVA和no obj的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-14,除非注明,否则均为首码项目网原创文章,转载请注明出处。