javacode java base 使用簡單資料結構演示java基礎語法基礎語法 Main.java public class Main{ public static void main(String[] args){ System.out.println("Hello World!"); } } 在終端輸入javac Main.java 會產生java.class =>這具有java運行時環境的操作系統(JRE) 在java.com所下載的稱為java虛擬機(jvm) jvm會獲取我們java Byte code轉換程Native code(windows,mac) Basic for java typeBytesRangebyte1-128~127short2-32K~32Kint4-2B~2Blong8float4double8char2boolean1 public class Main{ public static void main(String[] args){ long view = 3_123_456_789; //報錯 //java默認下將這些數字視為整數,認為數字太大.在句尾加上L or l 就能解決 } } //type public class Main{ public static void main(String[] args){ byte age = 30; long viewsCount = 3_123_456_789L; float price = 10.99F;//java默認為雙晶,在後面加F or f 才能用float char letter = 'A'; boolean isEqual = true; } } /* */ Point import java.awt.*; public class Main{ public static void main(String[] args){ Point point1 = new Point(1,1);//類似指針 Point point2 = point1; //point1 point2指向相同地址 point1.x = 2; System.out.println(point2.x); } } //將指針 * 轉為point String public class Main{ public static void main(String[] args){ String message = " hello world!" + "peter "; System.out.println(message.endsWith("hello world")); //endsWith檢查字尾的字串,是的話返回true System.out.println(message.startsWith("hello world")); // startWith檢查字頭,是的話返回true System.out.println(message.length()); System.out.println(message.indexOf("h")); //0 System.out.println(message.replace("peter","amy"));//返回心字串,並不更改原字串 System.out.println(message.toUpperCase());//轉大寫 System.out.println(message.trim());//去除字頭和字尾的空格 } } public class Main{ public static void main(String[] args){ String msg = "c:\\Window\\..."; //c:\Window\... String message = "hello \"peter\""; //hello "peter" System.out.println(message); System.out.println(msg); } } Array import java.util.Arrays; public class Main { public static void main(String[] args) { // 不應該對術組進行修改或刪除 int[] numbers = new int[5]; numbers[0] = 1; numbers[1] = 2; System.out.println(numbers); //打印出亂數是因爲Java返回的字符串是根據該對象的地址計算,每個對象都在不同的內存 //需要調用Arrays System.out.println(Arrays.toString(numbers)); int[] numbers2 = {1,2,5,12,10}; System.out.println(Arrays.toString(numbers2)); System.out.println(numbers2.length); //5 Arrays.sort(numbers2);//排序 System.out.println(Arrays.toString(numbers2)); } } /* */ 多維陣列 import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] numbers = new int[2][3]; numbers[0][0] = 1; System.out.println(Arrays.deepToString(numbers)); //toString只能用在一為陣列,一為以上要用deepToString int [][] numbers2 = {{1,2,3},{4,5,6}};//第一個{}代表第一個[] System.out.println(Arrays.deepToString(numbers2)); } } /* */ Const public class Main { public static void main(String[] args) { final float PI = 3.14f; //視為const,const use 大寫 } } 算術運算符 public class Main { public static void main(String[] args) { double num = 10 / 3; //3.0 double num2 = (double)10 / (double)3;//3.3333333 System.out.println(num); System.out.println(num2); int x = 1; int y = x++ ; System.out.println(x);//2 System.out.println(y);//1 } } /* */ 類型轉換 public class Main { public static void main(String[] args) { //Implicit casting //byte > short > int > long > float > double short x = 1; int y = x +2 ; System.out.println(y);//3 處理兩種不同類型 //java看到變量中的值為1,將他分配到匿名變亮,java copy x 然後相加 =>隱式轉換 double a = 1.1; double b = a + 2;//此時將2(int)轉換成2.0(double)再相加 int c = (int)b + 2;//顯示轉換,輸出5 System.out.println(c); String num = "1"; int age = 12; int who = Integer.parseInt(num) + age; //string沒辦法顯示轉換,要調用包來轉換 System.out.println(who); //13 } } /* */ Math public class Main { public static void main(String[] args) { int result = Math.round(1.1F);//1 int result2 = (int)Math.ceil(2.5F);//大於這個的最小整數 int result3 = (int) Math.floor(2.5F);// 小於這個的最小整數 int result4 = Math.max(1, 2);//返回大的數,min就返回小的數 double result5 = Math.random()*100;//產生0~1的隨機數,如果要增加範圍就*增加到的那個數 double result6 = Math.round(Math.random()*100);//取四捨五入到小數點第一位 //round不能發生隱式轉換 int result7 = (int)Math.round(Math.random()*100);//轉乘int int result8 = (int) Math.random() * 100;//輸出0,因為每一次產生的都是0~1之間,取整數後0*any = 0 int result9= (int) (Math.random() * 100); //產生0~100隨機數 System.out.println(result2); System.out.println(result3); System.out.println(result5); System.out.println(result6); System.out.println(result7); System.out.println(result8); System.out.println(result9); } } /* */ Number format import java.text.NumberFormat; public class Main { public static void main(String[] args) { // 10% NumberFormat currency = NumberFormat.getCurrencyInstance(); String result = currency.format(1234567.89); // $1,234,567.89 System.out.println(result); NumberFormat percent = NumberFormat.getPercentInstance(); String result2 = percent.format(10); // 10% System.out.println(result2); String result3 = NumberFormat.getNumberInstance().format(123); System.out.println(result3); } } /* */ Scanner import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Name: "); String name = scanner.nextLine().trim(); System.out.println("u r "+name); } } /* */ for each import java.util.Scanner; public class Main { public static void main(String[] args) { String[] fruits = {"appele","banana","orange"}; for (int i = 0;i<fruits.length;i++) System.out.println(fruits[i]); for(String fruit : fruits) //將fruits裡面的值存放到fruit裏 System.out.println(fruit); } } /* */ 基本資料結構 Array import java.util.*; public class DataStruct { public static void main(){ // Array int[] nums = new int[10]; nums[0] = 1; System.out.println("1.Array"); //打印array內容 // for (int n : nums){ // System.out.println(n); // } System.out.println(nums[0]); System.out.println(Arrays.toString(nums)); System.out.println(nums.length); } } String import java.util.*; public class DataStruct { public static void main(){ //String String s = new String("hello world"); s = new String(new char[]{'h','e','l','l','o'}); System.out.println("2.String"); System.out.println(s); System.out.println(s.charAt(0)); //h System.out.println(s.substring(0,2));//he ,[0,2) System.out.println("a".compareTo("b")); //-1 ,a < b System.out.println(s.contains("h")); //true ,是否包含 } } List import java.util.*; class ListNode{ int val; ListNode next; public ListNode(int val){ this.val = val; } } public class DataStruct { public static void main(){ //ListNode //初始化 ListNode head = new ListNode(0); //賦值 head.next = new ListNode(1); System.out.println("3.ListNode"); //取值 head.val while(head != null){ System.out.println(head.val); head = head.next; } } } BinaryTree import java.util.*; class TreeNode{ int val; TreeNode right; TreeNode left; public TreeNode(int val){ this.val = val; } } public class DataStruct { public static void main(){ //Tree //初始化 TreeNode root = new TreeNode(0); root.left = new TreeNode(1); root.right = new TreeNode(2); root.left.left = new TreeNode(3); root.left.right = new TreeNode(4); System.out.println("4.Tree"); /* * 0 * / \ * 1 2 * / \ * 3 4 * */ } } Stack import java.util.*; public class DataStruct { public static void main(){ //Stack,甲骨文doc推薦使用Deque取代stack //Stack常用於實現DFS //初始化 Stack<Integer> stack = new Stack<>(); stack.push(1); stack.push(2); stack.add(3); //更推薦用push System.out.println("5.Stack"); System.out.println(stack.peek()); //只看輾頂不移除元素 System.out.println(stack.pop()); //輾頂元素彈出來 System.out.println(stack.pop()); //輾頂元素彈出來 System.out.println(stack.pop()); //輾頂元素彈出來 System.out.println(stack.isEmpty());; //檢查是否為空 } } Queqe import java.util.*; public class DataStruct { public static void main(){ //Queue //Queue常用來實現BFS //初始化 Queue<Integer> queue = new LinkedList<>(); queue.offer(1); //推薦使用offer而不是add queue.offer(2); queue.add(3); System.out.println("6.Queue"); System.out.println(queue.peek());//讀取先進元素且不移除 System.out.println(queue.poll());//移除先進元素,推薦使用poll而非remove,poll處理了空不會報錯 System.out.println(queue.poll()); System.out.println(queue.remove()); System.out.println(queue.poll()); //以為空輸出null } } Deque import java.util.*; public class DataStruct { public static void main(){ //Deque //Deque和Queue最大的差別在不止從頭獲取資料,也能從尾獲取 //初始化 Deque<Integer> deque = new LinkedList<>(); deque.offerLast(1); deque.addLast(2); deque.offerFirst(3); System.out.println("7.Deque"); System.out.println(deque.peekFirst()); System.out.println(deque.pollFirst()); System.out.println(deque.pollLast()); } }