-
Notifications
You must be signed in to change notification settings - Fork 0
/
content.json
1 lines (1 loc) · 8.24 KB
/
content.json
1
{"posts":[{"title":"Java 2.循环","text":"一、for循环基本语法与C++并无二致,但注意增强for循环的写法: 12345678910111213141516171819202122//以下为基本语法for(元素类型 变量名: 数组或集合){ //执行语块}//以下为实例(数组)int[] numberList = {1, 2, 3,};for(int num: numberList){ System.out.println(num); //将会依次输出每个数字}//以下为实例(容器、集合)List<String> fruits = new LinkedList<>();fruits.add("apple");fruits.add("banana");fruits.add("watermelon");for(String fruit: fruits){ System.out.println(fruit); //将会依次输出每样水果} 二、while循环与do while循环基本与C++用法相同","link":"/2023/10/27/Java%202.%E5%BE%AA%E7%8E%AF/"},{"title":"Java 1.输入、输出和变量","text":"一、输出方法1: 12345System.out.println(); //输出并换行,适用于各种输出System.out.println("Hello World"); //输出字符串System.out.println(a); //输出变量aSystem.out.println("Hello" + a) //输出字符串“Hello”和变量a 方法2: 123456System.out.printf(); //格式化输出,使用方法同C语言System.out.printf("%d", a); //输出整型aSystem.out.printf("%s", str); //输出字符串strSystem.out.printf("%f", flo); //输出float类型 floSystem.out.printf("%f", doub); //输出duoble类型 doub 注意!!! 在C和C++中格式化输出float类型变量使用的是”%f”,double类型以及long double类型的变量,使用的是”%lf”。而在Java中,输出float类型和double类型的变量,使用的均为”%f”. 方法3(输出效率更高,适用于大规模输出): 首先调用包java.io.BufferedWriter, java.io.OutputStramWriter而后需要新建一个BufferedWriter类型的对象. 12345678910import java.io.BufferedWriter;import java.io.OutputStreamWriter;public class Main { public static void main(String[] args) { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); //新建对象bw bw.write("Hello World"); //BufferedWriter类的一个方法write() bw.flush(); //需要手动刷新缓冲区 }} 二、输入方法1:调用 java.util.Scanner随后新建一个对象用于调用Scanner内的方法 12345678910111213import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //新建对象sc String str = sc.next(); //读入下一个字符串(遇到空格为止) String line = sc.nextLine(); //读入一整行的字符(到换行符为止,空格也读入) int a = sc.nextInt(); //读入下一个整型 float b = sc.nextFloat(); //读入下一个单精度浮点数 double c = sc.nextDouble(); //读入下一个双精度浮点数 }} 方法2(适用于大规模输入,效率高,但注意要抛异常): 1234567891011//调包import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exceptions { //注意抛异常! throws Exceptions BufferedReader bw = new BufferedReader(new InputStreamReader(System.in)); //新建一个对象bw String str = bw.readLine(); //读入一整行的字符 }} 三、变量与C++基本相同,但需要注意以下几点: 1.常量的定义:常量使用 final 定义. 1final int a = 5; 2.类型转换: 1)普通转换(不改变数值): 12char c = 'a';int a = (int)c //将变量c从char类型转换为int类型(其值不变) 2)字符串转换 : 使用特定函数,将字符串所表示的数值转换. 12String str = "123.45";double a = Double.parseDouble(str); //此时,a的值会是123.45 相似的函数还有 12Integer.parseInt(); //是parseInt!!!Float.parseFloat();","link":"/2023/10/26/Java%201.%E8%BE%93%E5%85%A5%E3%80%81%E8%BE%93%E5%87%BA%E5%92%8C%E5%8F%98%E9%87%8F/"},{"title":"Java 3.数组","text":"一、数组的定义123456789//以下是一维数组命名准则数据类型[] 数组名 = new 数据类型[数组长度];//以下是一维数组实例int[] intArray = new int[100];//以下是二维数组的命名准则数据类型[][] 数组名 = new 数据类型[二维数组i长度][二维数组j长度];//以下是二维数组实例int[][] twoDimArray = new int[10][10]; 二、数组的访问与C++基本相同,均可通过下标访问,如 intArray[10].若直接访问intArray则为访问intArray[0],其以一个指针的形式存在 三、数组的常用API1.不需要调用包:1) .length 返回数组长度注意!!!与字符串的返回长度API区别,此API不需要括号! 12int[] intArray = new int[100];System.out.println(intArray.length); //注意,length后不需要括号 2.需要调用 java.util.Arrays1)Arrays.sort() 将数组排序 2)Arrays.fill(int[] array, int val)将值填充至数组 3)Arrays.toString()将数组转化为字符串 4)Arrays.deepToString()将多维数组转化为字符串 需要注意的是,所有数组一旦定义后便不可变长","link":"/2023/10/27/Java%203.%E6%95%B0%E7%BB%84/"},{"title":"数据结构与算法(一)","text":"注:以下代码均基于C++ 快排算法思路: 取数组q[]的中间值为参考, 将数组的首尾两端与数组的中间值比较(首端比中间值小, 尾端比中间值大)直至首尾两端均不符合条件.此时再将不符合条件的两个值交换. 12345678910111213141516171819202122232425void quickSort(int q[], int l, int r){ if(l >= r) return; //递归算法的终止条件 int x = q[l + r >> 1], i = l - 1, j = r + 1; //取x作为比较的中间值 while(i < j) { do i++; while(q[i] < x); do j--; while(q[j] > x); // 如果还满足i < j且q[i] < q[j],交换q[i]与q[j] if(i < j) { int t = q[i]; q[i] = q[j]; q[j] = t; } } quickSort(q, l, j), quickSort(q, j + 1, r); //递归算法} 归并排序算法思路: 将数组q[]从中间分成长度相等的两段, 设其长度中间值为mid. 依次比较q[1]与q[mid + 1]等的大小, 不断将两者其中更小者放入临时数组temp[]中, 直至两段中的一段全部被放入. 此时再将未放完的一段数组全部放入临时数组temp[]中. 12345678910111213141516171819void mergeSort(int q[], int l, int r){ if(l >= r) return; //归并算法终止条件 int mid = l + r >> 1, i = l, j = mid + 1, t = 0; //定义数组中间位数等 int temp[100010]; //定义临时数组用来保存部分数据 mergeSort(q, l, mid), mergeSort(q, mid + 1, r); //归并算法 while(i <= mid && j <= r) // { if(q[i] <= q[j]) temp[t++] = q[i++]; else temp[t++] = q[j++]; } while(i <= mid) temp[t++] = q[i++]; while(j <= r) temp[t++] = q[j++]; for(i = l, t = 0;i <= r;i++, t++) q[i] = temp[t]; //将临时数组中的元素放回到数组q[]中 } 更新中…","link":"/2023/07/23/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95%EF%BC%88%E4%B8%80%EF%BC%89/"},{"title":"我是如何搭建自己的博客的?","text":"写下第一篇这篇正值暑假,作者在家闲来无事翻看手机时,想起前一段时间北邮所谓的喜茶姐事件。在看完男主的博客后,不禁感叹男主的口才伶俐,同时也懂得借助博客来扩大事件的关注度。 为了记录学习过程,同时以备不时之需作者决定借助hexo和GitHub搭建一个博客。 一、准备工作1.下载并安装Node.js 2.下载并安装Git 3.确保你拥有一个Github账号 二、安装hexo1.创建一个文件夹用来存放本地的博客内容 2.在创建好的文件夹目录下右键呼出Git bash控制台 更新中…","link":"/2023/07/22/%E6%88%91%E6%98%AF%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2%E7%9A%84%EF%BC%9F/"}],"tags":[{"name":"-Java - 学习","slug":"Java-学习","link":"/tags/Java-%E5%AD%A6%E4%B9%A0/"},{"name":"Java","slug":"Java","link":"/tags/Java/"},{"name":"学习","slug":"学习","link":"/tags/%E5%AD%A6%E4%B9%A0/"},{"name":"数据结构与算法","slug":"数据结构与算法","link":"/tags/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/"},{"name":"web","slug":"web","link":"/tags/web/"}],"categories":[{"name":"Java","slug":"Java","link":"/categories/Java/"},{"name":"数据结构与算法","slug":"数据结构与算法","link":"/categories/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/"},{"name":"web","slug":"web","link":"/categories/web/"}],"pages":[]}