發表文章

目前顯示的是 2017的文章

ArrayList刪除特定元素的方法 remove

移除偶數元素 @Test public void testRemove2 (){ List<Integer> integers = new ArrayList<>( 5 ); integers. add ( 1 ); integers. add ( 2 ); integers. add ( 2 ); integers. add ( 4 ); integers. add ( 5 ); for ( int i = 0 ; i < integers. size (); i++) { if (integers. get (i)% 2 == 0 ){ integers. remove (i); } } System. out . println (integers); } 看起來好像沒問題,加入面試的時候當面問:輸出結果是什么?再問真不會報錯嗎?再問結果是什么? 結果是[1, 2, 5] 原因,因為使用 ArrayList的remove()方法之後,此方法會幫忙把 後面的元素自動遞補上去被移除的位置, 而使用迴圈就會跳過檢查遞補上來的元素。遺漏掉了!!! 成功作法在檢查到的時候,補上i-- for(int i=0; i< integers .size(); i++) { if(!( integers .get(i)  % 2 == 0 )) { integers .remove( integers .get(i)); i--; } } 把for迴圈倒過來用,從尾端元素開始往前檢查,就不用再補上i-- for(int i= integers.size()-1; i<0;i--){ if(!( integers .get(i)  % 2 == 0 )) { integers .remove( integers .get(i)) } 法二 ,使用 Iterator來幫忙移除 Iterator itForDs =  integers .iterator()

JAVA的文字輸出檔案

JAVA的輸出 水管1:輸出到檔案,印出自己的文字儲存成一個檔案             FileOutputStream fos= new FileOutputStream("C:\\JavaHW\\Data.txt");            BufferedOutputStream bos= new BufferedOutputStream(fos);            PrintStream ps=new PrintStream(bos);            ps. print ("把這段文字儲存到新建的檔案中");            ===================================================            FileWriter fw = new FileWriter("c:\\javawork\\hello2.txt");            BufferedWriter bw = new BufferedWriter(fw);            PrintWriter pw = new PrintWriter(bw);            pw.println("多麼美好的一天挖 !");            pw.write("多麼美好的一天挖 !"); //也可使用            ===================================================            這個方式檔案如果存在,文字不會覆蓋,而是接著寫上去(附加)。            重點:建構子加上true             FileWriter  fw = new FileWriter("hello.txt", true);             BufferedWriter  bw = new BufferedWriter(fw);             PrintWriter  pw = new PrintWriter(bw);            pw. println (&q

Javascript把愛心點選切換圖片

<script> //加入收藏 或 取消收藏 function switchFavorite(){ var getHp=document.getElementById("heart"); if(getHp.title=="加入收藏"){ getHp.src="heart_red.png"; getHp.title="取消收藏"; }else { getHp.src="heart_white.png"; getHp.title="加入收藏"; } } function init(){ //設定[加入收藏 或 取消收藏]的點按事件 document.getElementById("heart").onclick=switchFavorite;   window.alert(document.getElementById("heart").src); }//init window.onload = init; </script>

Javascript三種方式指定事件處理器

Javascript三種方式指定事件處理器 <body> <input type="button" name="btn" value="10+20=??" onClick="showAns();">  <input type="button" name="btn" value="10+20=??"> <input type="button" name="btn" value="10+20=??">  <br> <script type="text/javascript"> function showAns(){ var a=10; var b=20; window.alert(a+b); } function forFun(){ window.alert("^______________^"); btns[2].removeEventListener("click", forFun, false); } function noAns(){ window.alert("不告訢你 ><"); } var btns = document.getElementsByName("btn"); //btns[1]事件會被覆蓋--->noAns把showAns函式物件覆蓋了 btns[1].onclick = showAns; btns[1].onclick = noAns; //使用addEventListener //btns[2]可以有多重事件 showAns以及noAns函式物件 btns[2].addEventListener("click", showAns, false); btns[2].addEventListener("click", forFun, false);

顏色編碼 隨機選擇

Coolors:自動配色的線上工具,快速產生合適的色票 https://blog.gtwang.org/useful-tools/coolors-color-palettes-generator/ https://coolors.co/ 5d4e60 -82617d -a88fac -d4b2d8 -efcefa

[JavaScript]取得input的value

http://pclevin.blogspot.tw/2013/10/javascriptinputvalue.html  [JavaScript]取得input的value [JavaScript]取得input的value 有各種方法來獲得輸入文本框的值: 方法 1: 使用 id 名稱來取: document.getElementById('input text id').value 返回input的value 範例: document.getElementById("searchTxt").value; 方法 2: 使用 class 名稱來取: document.getElementsByClassName('input text class_name')[取第幾個].value 返回多筆input的為list 範例: 取回第一筆資料 document.getElementsByClassName("searchField")[0].value; 方法 3: 使用 html tag 名稱來取: document.getElementsByTagName('tag_name')[取第幾個].value 返回多筆input的為list 範例: 取回第一筆資料 document.getElementsByTagName("input")[0].value; 方法 4: 使用 name 名稱來取: document.getElementsByName('name')[取第幾個].value 範例: 取回第一筆資料 document.getElementsByName("searchTxt")[0].value; 方法 5: 使用選擇器(selector) document.querySelector('selector').value 範例: selected by id document.querySelector('#searchTxt').value; selected by class document.querySelector('.searchField'

子類別建構子super觀念

圖片
父類別子類別建構子觀念 寫程式編譯的時候出現一個 錯誤 IMPLICIT SUPER CONSTRUCTOR IS UNDEFINED FOR DEFAULT CONSTRUCTOR. MUST DEFINE AN EXPLICIT CONSTRUCTOR Implicit super constructor ZHero() is undefined. Must explicitly invoke another constructor Google找到這篇文章寫得很棒 https://ddnews.me/tech/qka5h3zp.html 關於JAVA建構子(CONSTRUCTOR)的常見問題總結 作者   六尺帳篷  - 2017-06-12 這篇文章總結了Java使用建構子中最常遇到的五個問題! 1 為什麼調用子類的構造方法的時候,預設會調用父類的構造方法 看下面這個簡單的例子: package cc; public class Sub extends Super { public Sub() { System.out.println("Sub"); } public static void main(String[] args) { Sub sub = new Sub(); } } class Super { public Super() { System.out.println("Super"); } } Paste_Image.png 當繼承自一個類的時候,構造方法就會首先調用super()方法。如果沒有顯式的寫這個語句,那麼編譯器就會自動插入這個語句。這就是為什麼我們上面的那個例子程序會先調用super的構造方法。 但要切記,  雖然調用了父類的構造方法,但只建立了一個對象也就是子對象。 之所以要調用父類的構造方法,是因為super類可能需要建構子來初始化一些私有的成員變數。 編譯器自動插入super構造方法後,子類的建構子就會像下面這樣: public Sub(){ super()

列出不重複的隨機亂數

要如何列出不重複的隨機亂數呢? 因為隨機亂數連續取值,會產生重複號碼。 要解決這個問題。 例如:程式輸出  樂透彩 選號 49個數字隨機取6個 想到三個陣列方法。 方法一:直接把全部數字49個號碼儲存在陣列裡面, 再用迴圈跑個一輪做隨機元素交換,for(i=0; i<arr.length; i++), 迴圈裡面用一個隨機亂數取值, 指到哪個元素就 i=序列的元素跟那個隨機元素交換。 方法二:如同方法一把全部數字49個號碼儲存在陣列裡面, 再用隨機方式取出陣列裡的元素號碼,並且重新設定該元素內的 值為號碼以外的值,像是負一或其他,然後再繼續隨機取值, 如果取到的值為設定的取出重設值(代表已經選過了),就再來一次。 方法三:使用兩個迴圈,內層迴圈裡隨機亂數取值,然後再跟之前 取過號碼的元素做比較,如果發現有一樣的號碼,可以使用i--讓 隨機亂數在重找一遍號碼,當然外面迴圈跑到越後面,後面的元素 取得的號碼跟前面重複的機會就越高。所以,這個迴圈會跑個很多次, 使用計數器,發現49取49個亂數的迴圈跑個四百多次都有可能。 方法四:已選出來的,把儲存值更改成零或負一.. Javascript使用方法二更方便,直接刪除已經取得的號碼。 <script type="text/javascript">   var arr =[];     for (i=0;i<49;i++){        arr[i]=i+1;     }   var rancodes6= new Array(6);   function ans(){     var x;     for(i=0;i<6;i++){       //這邊記得要用49-i,元素每取走一個,就少一個。     x=Math.floor(Math.random()*(49-i))     rancodes6[i]=arr.splice(x,1);   }   return rancodes6;   }     document.write(&quo

Java 例外處理,觀念題

Java 例外處理,觀念題。 Exception { try  catch} //由main方法,搭配下面三小題目 詢問輸出結果。 public class ExceptionFlow2 { public static void main(String[] args) { try { method(); } catch (Exception e) { System.out.println("3 - Exception handling in main()"); } } //   題目1 // public static void method() throws Exception { // try { // System.out.println("1 - in method()"); // throw new Exception(); // } catch (Exception e) { // System.out.println("2 - Exception handling in method()"); // } // } //  題目2 // public static void method() throws Exception { // try { // System.out.println("1 - in method()"); // throw new Exception(); // } catch (RuntimeException e) { // System.out.println("2 - Exception handling in method()"); // } // } //  題目3 public static void method() throws Exception { try { System.out.println("1 - in method()"); throw new Exception();