//----------------先寫了個,功能是實現(xiàn)了,有待改進(jìn)-----------

專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)廣西免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
import java.util.ArrayList;
import java.util.List;
/**
* 現(xiàn)有ListSourceBean類型的List對象,
* 現(xiàn)在需要將該List對象中a是奇數(shù)或者b100的對象過濾掉,
* 請用責(zé)任鏈模式實現(xiàn)此段代碼。
* @author Administrator
*
*/
public class Chain_test1 {
public static void main(String[] args) {
ListSourceBean list = new ArrayListSourceBean();
SourceBean bean1 = new SourceBean(1, 100);
SourceBean bean2 = new SourceBean(2, 200);
SourceBean bean3 = new SourceBean(3, 100);
SourceBean bean4 = new SourceBean(4, 100);
SourceBean bean5 = new SourceBean(5, 20);
SourceBean bean6 = new SourceBean(6, 200);
list.add(bean1);
list.add(bean2);
list.add(bean3);
list.add(bean4);
list.add(bean5);
list.add(bean6);
System.out.println("過濾前List中的內(nèi)容");
printList(list);
// 裝配 鏈條
Filter oddFilter = new OddFilter();
//為了保持Filter里面的邏輯不混亂,OddFilter僅過濾奇數(shù),CompareFilter僅僅過濾b100
//這里對奇數(shù)過濾兩次,
//即,過濾掉b100和a是奇數(shù) 共存的情形
Filter oddFilter2 = new OddFilter();
Filter compareFilter = new CompareFilter();
oddFilter.setFilter(null);
compareFilter.setFilter(oddFilter);
oddFilter2.setFilter(compareFilter);
// 進(jìn)行過濾
oddFilter2.doFilter(list);
System.out.println("\n過濾后List中的內(nèi)容");
printList(list);
}
public static void printList(ListSourceBean list){
for(SourceBean s: list){
System.out.print(s.toString());
}
}
}
class Filter{
private Filter filter;
public void doFilter(ListSourceBean list){
if (filter != null){
filter.doFilter(list);
}else{
System.out.println("處理結(jié)束");
}
}
public void setFilter(Filter filter){
this.filter = filter;
}
}
/**
* 僅僅過濾b100
*/
class CompareFilter extends Filter{
public void doFilter(ListSourceBean list){
for(int i= 0; i list.size(); i++){
if(list.get(i).getB() 100 ){//b100
list.remove(i);//移除該對象
}else{//交給其他Filter處理
super.doFilter(list);
}
}
}
}
/**
* 僅過濾a為奇數(shù)
*/
class OddFilter extends Filter{
public void doFilter(ListSourceBean list){
for(int i= 0; i list.size(); i++){
if(list.get(i).getA() % 2 != 0){//非偶數(shù)
list.remove(i);//移除該對象
}else{//交給其他Filter處理
super.doFilter(list);
}
}
}
}
class SourceBean {
private int a;
private int b;
public SourceBean(int a, int b){
this.a = a;
this.b = b;
}
public SourceBean(){
}
public String toString(){
return "[a="+a+", b="+b+"] ";
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public void setB(int b) {
this.b = b;
}
public int getB() {
return b;
}
}
//------------------------執(zhí)行結(jié)果----------------------------
過濾前List中的內(nèi)容
[a=1, b=100] [a=2, b=200] [a=3, b=100] [a=4, b=100] [a=5, b=20] [a=6, b=200]
過濾后List中的內(nèi)容
[a=4, b=100]
這是我寫的一個差不多,你看一下吧:
package com.test.list;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class LinkedList {
public static void main(String[] args) {
MyList l = new MyList();
MyListNode node = l.createList();
l.printNode(node);
//l.searchNode(node, 4);
//node = l.insertNode(node, 3, "g");
//l.printNode(node);
node = l.deleteNode(node, "d");
l.printNode(node);
}
}
class MyListNode {
public String data;
public MyListNode nextNode;
}
class MyList {
public MyListNode createList() {
MyListNode node = new MyListNode();
MyListNode q ,p;
q = new MyListNode();
q = node;
while (true) {
String s = null;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("請輸入節(jié)點數(shù)據(jù):");
s = br.readLine();
if (s.equals("0")) {
break;
} else {
p = new MyListNode();
p.data = s;
p.nextNode = null;
q.nextNode = p;
q = p;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return node;
}
public void printNode(MyListNode node) {
MyListNode p = node.nextNode;
while (p!= null) {
System.out.print(" "+p.data);
p = p.nextNode;
}
}
public void searchNode(MyListNode node, int i){
MyListNode p = node.nextNode;
int j = 1;
while (p != null ji) {
p = p.nextNode;
j++;
}
if( p == null || ji) {
System.out.println("error");
}
System.out.println(" --"+p.data+"--");
}
public MyListNode insertNode(MyListNode node, int i ,String s) {
MyListNode p = node.nextNode;
int j = 1;
while (p != null ji-1) {
p = p.nextNode;
j++;
}
if( p == null || ji-1) {
System.out.println("error");
}
MyListNode n = new MyListNode();
n.data = s;
n.nextNode = p.nextNode;
p.nextNode = n;
return node;
}
public MyListNode deleteNode(MyListNode node ,String s) {
MyListNode p = node;
while(p.nextNode != null !p.nextNode.data.equals(s)) {
p = p.nextNode;
}
p.nextNode = p.nextNode.nextNode;
return node;
}
}
/*逆位序創(chuàng)建
public MyListNode createList() {
MyListNode node = new MyListNode();
node.nextNode = null;
while(true) {
String s = null;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("請輸入節(jié)點數(shù)據(jù):");
s = br.readLine();
if(s.equals("0")) {
break;
}else {
MyListNode n = new MyListNode();
n.data = s;
n.nextNode = node.nextNode;
node.nextNode = n;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return node;
}
*/
樓主說的是不是表格可以動態(tài)編輯修改啊?你是用servlet嗎?這樣的話頁面上的可編輯表格你要用js實現(xiàn),保存的信息你傳到后臺用request獲取是數(shù)組格式的,順序和你頁面上顯示的順序一致,ID你在頁面隱藏,然后遍歷這幾個數(shù)組就可以了
class A{
public B getB(){
return new B();
}
}
class B{
public a getA(){
return new A();
}
}
public static void main(String args[]){
B b = new A().getB().getA().getB(); //類似于這樣的
}
網(wǎng)站優(yōu)化通常包含兩方面的內(nèi)容:減小代碼的體積和提高代碼的運行效率。減小代碼的體積已經(jīng)寫過太多這類的文章了,下面就簡單討論下如何提高代碼的效率。一、不用new關(guān)鍵詞創(chuàng)建類的實例用new關(guān)鍵詞創(chuàng)建類的實例時,構(gòu)造函數(shù)鏈中的所有構(gòu)造函數(shù)都會被自動調(diào)用。但如果一個對象實現(xiàn)了Cloneable接口,我們可以調(diào)用它的clone()方法。clone()方法不會調(diào)用任何類構(gòu)造函數(shù)。在使用設(shè)計模式(DesignPattern)的場合,如果用Factory模式創(chuàng)建對象,則改用clone()方法創(chuàng)建新的對象實例非常簡單。二、使用非阻塞I/O版本較低的JDK不支持非阻塞I/OAPI。為避免I/O阻塞,一些應(yīng)用采用了創(chuàng)建大量線程的辦法(在較好的情況下,會使用一個緩沖池)。這種技術(shù)可以在許多必須支持并發(fā)I/O流的應(yīng)用中見到,如Web服務(wù)器、報價和拍賣應(yīng)用等。然而,創(chuàng)建Java線程需要相當(dāng)可觀的開銷。JDK1.4引入了非阻塞的I/O庫(java.nio)。如果應(yīng)用要求使用版本較早的JDK,需要支持非阻塞I/O的軟件包。三、慎用異常異常對性能不利。拋出異常首先要創(chuàng)建一個新的對象。Throwable接口的構(gòu)造函數(shù)調(diào)用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調(diào)用跟蹤信息。只要有異常被拋出,VM就必須調(diào)整調(diào)用堆棧,因為在處理過程中創(chuàng)建了一個新的對象。異常只能用于錯誤處理,不應(yīng)該用來控制程序流程。四、不要重復(fù)初始化變量默認(rèn)情況下,調(diào)用類的構(gòu)造函數(shù)時,Java會把變量初始化成確定的值:所有的對象被設(shè)置成null,整數(shù)變量(byte、short、int、long)設(shè)置成0,float和double變量設(shè)置成0.0,邏輯值設(shè)置成false。當(dāng)一個類從另一個類派生時,這一點尤其應(yīng)該注意,因為用new關(guān)鍵詞創(chuàng)建一個對象時,構(gòu)造函數(shù)鏈中的所有構(gòu)造函數(shù)都會被自動調(diào)用。五、盡量指定類的final修飾符帶有final修飾符的類是不可派生的。在Java核心API中,有許多應(yīng)用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個類為final,則該類所有的方法都是final。Java編譯器會尋找機(jī)會內(nèi)聯(lián)(inline)所有的final方法(這和具體的編譯器實現(xiàn)有關(guān))。此舉能夠使性能平均提高50%。六、盡量使用局部變量調(diào)用方法時傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時變量都保存在棧(Stack)中,速度較快。其他變量,如靜態(tài)變量、實例變量等,都在堆(Heap)中創(chuàng)建,速度較慢。另外,依賴于具體的編譯器/JVM,局部變量還可能得到進(jìn)一步優(yōu)化,望采納,謝謝。
Java工作原理
由四方面組成:
(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機(jī)
(4)Java應(yīng)用程序接口
當(dāng)編輯并運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟件(例如記事本、寫字板、UltraEdit等)或集成開發(fā)環(huán)境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調(diào)用類(這些類實現(xiàn)了Java API)中的方法來訪問資源系統(tǒng),把源文件編譯生成一種二進(jìn)制中間碼,存儲在class文件中,然后再通過運行與操作系統(tǒng)平臺環(huán)境相對應(yīng)的Java虛擬機(jī)來運行class文件,執(zhí)行編譯產(chǎn)生的字節(jié)碼,調(diào)用class文件中實現(xiàn)的方法來滿足程序的Java API調(diào)用 。
文章題目:java代碼執(zhí)行鏈,鏈?zhǔn)秸{(diào)用 java
分享路徑:http://chinadenli.net/article8/phicip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App設(shè)計、電子商務(wù)、網(wǎng)站建設(shè)、網(wǎng)站改版、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)