- 掌握数组的基本用法
- 如何声明一个数组
- 如何分配空间
- 如何赋值
- 会应用数组解决简单问题
- 求平均值
- 求最大、最小值
- 排序
package com.WPF.arrayJava;
public class TestArray {
public static void main(String[] args) {
// 什么是数组
// 1: 数组定长, 2:什么类型的数组里面放的是什么类型的数据
// 整形变量的数组默认值都是 0
//byte[] arr = new byte[5];
//short[] arr = new short[4];
//int[] arr = new int[6];
// 浮点型的数组默认值都是: 0.0
//float[] arr = new float[3];
//boolean[] arr = new boolean[5]; // 默认值是false
char[] arr = new char[5]; // 默认值是一个空格
// 往数组里面放数据
// arr[0] = 12; // 数组的每一个位置,就相当于这个类型的变量
// arr[1] = 2;
// arr[3] = 4;
// byte数组的每一个位置的默认值是0, 这个给默认值的过程叫 初始化;
//System.out.println(arr[0]);
//byte a = 0;
//System.out.println(a);
// 数组的遍历 : 就是把数组的每一个位置都访问一遍
for (int i = 0; i < arr.length; i++) {
System.out.println("----" + arr[i] + "----");
}
System.out.println("------------------");
//-- 简单循环, 增强循环
// for (boolean b : arr) {
// System.out.println(b);
// }
char a = '\u0000'; // char的默认值
System.out.println("---" + a + "---");
}
}
package com.skeyedu.array;
public class TestArray2 {
public static void main(String[] args) {
//int[] arr = new int[6]; //动态初始化
//int arr[] = {1,2,3,4,5,6,7}; //静态初始化
// int[] arr = new int[] {11,22,33,44,55,66,77};
//
// for(int i=0; i<arr.length; i++) {
// System.out.println(arr[i]);
// }
// -- 二维数组的定义
//int[][] arr = new int[3][4];
//arr[1][2] = 12;
int[][] arr = { {11,12,13},{22,33,44,55,66},{333,444,555,666,777,888}};
//System.out.println(arr[1][2]);
// 二维数组的遍历
// 第一个循环取每一层的值
for(int i=0; i<arr.length; i++) {
// 第二个循环,取每一个列的值
for(int j=0; j< arr[i].length ; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
System.out.println("=======================");
for (int[] is : arr) {
for (int i : is) {
System.out.print(i+"\t");
}
System.out.println();
}
}
}
package com.WPF.arrayJava;
public class TestArray3 {
public static void main(String[] args) {
// 多维数组
int[][][] arr = new int[3][3][3];
// 第一个循环; 取每一层
for(int i=0; i<arr.length; i++) {
// 第二个循环; 取的是每一个条
for(int j=0; j<arr[i].length; j++) {
// 第三个循环; 取的是第一个格子
for(int k=0; k<arr[i][j].length; k++) {
arr[i][j][k] = (i+1)*100 +(j+1)*10 + k+1;
}
}
}
// --- 三维数组的遍历 -------------
// 第一个循环; 取每一层
for(int i=0; i<arr.length; i++) {
// 第二个循环; 取的是每一个条
for(int j=0; j<arr[i].length; j++) {
// 第三个循环; 取的是第一个格子
for(int k=0; k<arr[i][j].length; k++) {
System.out.print(arr[i][j][k]+"\t");
}
System.out.println();
}
System.out.println("-------------------");
}
}
}
package com.WPF.arrayJava;
import java.util.Arrays;
public class TestArray4 {
public static void main(String[] args) {
int[] arr = {32,11,5,78,99,100,2,9,102};
// 得到数组里的最大值
/* int max = 0;
for(int i=0; i<arr.length; i++) {
// 如果你比我大,那么,我就把你的值拿过来
if(max < arr[i]) {
max = arr[i];
}
}
System.out.println(max);*/
// 数组的排序
/*Arrays.sort(arr);
for(int i:arr) {
System.out.print(i+"\t");
}*/
// 自定义排序
/*
int a = 1;
int b = 999;
// 值交换,应该有个第三方变量
int temp = a;
a = b;
b = temp;
*/
int temp = 0;
// 第一个循环,取每一个位置的值
for(int i=0; i<arr.length; i++) {
// 第二个循环,把取得的值,和后面的每一个位置进行比较
for(int j=i+1; j<arr.length;j++) {
// 如果我比你大,那么我和你交换位置
if(arr[i] < arr[j]) {
// 值交换
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int i:arr) {
System.out.print(i+" , ");
}
}
}
package com.WPF.arrayJava;
public class TestArray5 {
public static void main(String[] args) {
// 从数组里面找值; 打印出索引
int[] arr = {2,3,4,5,6,7,8,9,10,102,105,};
int num = 9;
/*for(int i=0; i<arr.length; i++) {
count++;
if(num == arr[i]) {
System.out.println("要找的值的位置是:"+i);
break;
}
}*/
// 二分法查找
int begin = 0; // 开始的位置
int last = arr.length-1; // 最后的位置
int index = -1; // 默认-1 没有找到
int count = 0; // 找的次数
int middle; // 定义一个中间数
while(last >= begin) {
count++;
// 确定中间的位置
middle = (begin+last)/2;
// 如果正好是中间的数相等
if(num == arr[middle]) {
index = middle;
break;
// 否则如果,要找的数大于中间数
}else if(num > arr[middle]) {
begin = middle+1;
// 否则如果,要找的数小于中间数
}else if(num < arr[middle]) {
last = middle-1;
}
}
System.out.println("找了 "+count+" 次: 位置是:"+index);
}
}
package com.WPF.arrayJava;
public class TestBuffer {
public static void main(String[] args) {
// 是String 的增强版; 是可变的字符串序列 ;
StringBuffer strbuf1 = new StringBuffer("hello");
StringBuffer strbuf2 = strbuf1;
strbuf2.append(",java");
System.out.println(strbuf2 == strbuf1);
System.out.println("------------------------------------");
StringBuilder str1 = new StringBuilder("java");
StringBuilder str2 = str1;
str2.append("!!!!!");
System.out.println(str1 == str2);
}
}
package com.WPF.arrayJava;
import java.util.Scanner;
public class TestMethod {
// 方法的重载
// 访问权限 返回值申明 方法名(){...}
public void oneToTen() {
for(int i=1; i<=10; i++) {
System.out.println(i);
}
}
// 参数:形参(方法定义时写的参数,要写参数的类型)
public void oneToTen(int num) {
for(int i=1; i<= num ; i++) {
System.out.println(i);
}
}
public void oneToTen(int x, int y) {
for(int i=x; i<= y ; i++) {
System.out.println(i);
}
}
public static void main(String[] args) {
// 方法: 就是能实现某种功能的代码集
//Scanner input = new Scanner(System.in);
//String str = input.next();
// ---------------------------------
// 方法的调用: 用方法所在类的对象来调用
TestMethod t = new TestMethod();
// 使用方法时提供的参数: 实参: 不用写类型,只能提供相应的类型即可
t.oneToTen(2,20);
}
}
package com.WPF.arrayJava;
public class TestPackage {
public static void main(String[] args) {
// 包装类,是对基本数据类型的封装;
// 包装类: 是基本数据类型面向对象的表现形式;
/*
* byte ---> Byte
* short ---> Short
* int ---> Integer
* long ---> Long
* float ---> Float
* double ---> Double
* boolean ---> Boolean
* char ---> Character
*
*
* */
byte a = 100;
Byte a1 = new Byte(a);
int b = 200;
String num = "12345";
int c = Integer.parseInt(num); // 包装类里面的方法
System.out.println(c+"---------------");
System.out.println(c-10000);
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
}
package com.WPF.arrayJava;
public class TestString {
public static void main(String[] args) {
// java里的数据类型:
//1:基本数据类型(八大)
//2:引用数据类型(数组类型, 接口, 自定义类...)
int a = 0;
float b = 0.0f;
boolean f = false;
char c = '\u0000';
// 字符串(最大特性: 不可变 ) ; 用双引号引起来的一串字符
String str = "hello"; // null 代表没有引用
String str3 = "hello";
String str2 = new String("hello");
String str4 = new String("hello");
// System.out.println(str == str2); // == 在引用数据类型进行判断的时候,比的是内存地址
// System.out.println(str == str3);
// System.out.println(str2 == str4);
// // 比较字符串的值用equals()方法
// System.out.println(str.equals(str4));
str3 = str3+",java";
System.out.println(str3);
System.out.println(str);
}
}
package com.WPF.arrayJava;
public class TestString2 {
public static void main(String[] args) {
String str = "hello,java";
//String newStr = str.concat("---------");
//str = str+"------"; // + 号除了是运算符,也可以是连接符; 字符吕与任何数相加,都把它变成字符串
//boolean b = true;
//str = str+b;
//char c = str.charAt(0); // 返回指定索引处的 char 值
//System.out.println(str.endsWith("xe")); // 返回的是boolean
// int i = str.indexOf("a");
/* int i = str.lastIndexOf("a");
System.out.println(i);
System.out.println(str.isEmpty());
System.out.println(str.length());
String newStr = str.replace('a', 'x');
System.out.println(newStr);
String[] arr = str.split(",");
for (String s : arr) {
System.out.print(s+" ");
}
*/
String newStr = str.substring(6);
System.out.println(newStr);
String substring = str.substring(4, 7);
System.out.println(substring);
char[] arr = str.toCharArray();
for(char c: arr) {
System.out.print(c+" , ");
}
System.out.println("---------------------");
String str2 = String.valueOf(arr);
System.out.println(str2);
}
}
package com.WPF.arrayJava;
import java.util.Scanner;
import javax.swing.plaf.synth.SynthScrollBarUI;
public class TestString3 {
public static void main(String[] args) {
/*String str = "hello";
String str2 = new String("hello");
char[] arr = {'j','a','v','a'};
String str3 = new String(arr);
System.out.println(str3);
String str4 = String.valueOf(arr);
System.out.println(str4);
*/
/*
Scanner input = new Scanner(System.in);
System.out.println("请输入一句话");
String str = input.next();
System.out.println("你输入的是:"+str+"; 长度是:"+str.length());
*/
/*String name = "小明";
String password = "xiaoming";
Scanner input = new Scanner(System.in);
*/
/*while(true) {
System.out.println("欢迎使用XX系统");
System.out.println("1: 登录 2: 退出");
String op = input.next();
if("1".equals(op)) {
System.out.println("请输入用户名:");
String userName = input.next();
System.out.println("请输入密码");
String userPass = input.next();
if(userName.equals(name) && userPass.equals(password)) {
System.out.println("---登录成功---");
}else {
System.out.println("--用户名或密码错误--");
}
}else if("2".equals(op)) {
break;
}
}
*/
/*
String mail = "123123qq.com";
if(mail.indexOf("@") >0 && mail.indexOf(".")>0) {
System.out.println("------mail ok------");
}else {
System.out.println("------mail error------");
}
*/
String str = " hello, ";
str = str.trim();
str += "小鱼儿和花无缺!";
System.out.println(str.substring(6, 9));
System.out.println("---end---");
}
}