「objnode在JAVA」no obj
今天给各位分享objnode在JAVA的知识,其中也会对no obj进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、链表问题啊!Java方面的
- 2、怎么把数据库内容写到xml文件中?
- 3、用JAVA编写链表类,要求编写能够从头部添加节点。
- 4、java单链表实现时 current.setNext(new Node(obj,current.next)); 出现了 java.lang.NullPointerExcept
- 5、用Java语言实现单向链表
- 6、java 怎样捕获异常后,程序不中止,继续执行,返回参数
链表问题啊!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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-14,除非注明,否则均为
原创文章,转载请注明出处。