-
MyEclipse的用法
新建一个工程(目前创建的是Java Project)——》在工程的src下创建包(com.工程名.架构层次名,包名全小写)——》在包创建Java类Java Project:src(存放Java源码,一般用包来管理),bin(编译之后.class文件)
2.Java代码出错:
(1)编译报错 (2)运行出错
调试:(1)debug调试:设置断点——》点击虫子按纽进行调试——》通过观察变量和代码的执行状态来排错。(2)用输出调试。按代码的执行流程来判断出错的地方。
3.一维数组:一组数据类型相同的数据的集合。
(1)数组的五要素:数据类型,数组长度,数组名,数组元素,数组下标又名索引(从0开始)。
(2)数组的特点:a.存储一组类型相同的数据。b.数组可以存任意类型的数据。c.数组中每个元素的调用:数组名[下标]。d.数组是引用类型。e.数组一旦声明分配了空间,那么他的长度固定。f.数组下标的范围:0到数组长度-1.
(3)数组的声明
a.数组声明第一种
声明数组的语法:数据类型[] 数组名;
给数组分配空间:数组名=new 数据类型[长度];
String [] names;
names = new String[10];
b.数组声明第二种:
数据类型[] 数组名=new 数据类型[长度];
int [] age = new int [10];
(4)数组的赋值
a.动态赋值: 数组名[下标]=值;
String [] names;
names = new String[10];
names[0]=“张三”;
names[1]=“李四”;
names[2]=“王五”;
b.静态赋值:数据类型[] 数组名={值1,值2,值3};
数据类型[] 数组名=new 数据类型[]{值1,值2,值3};
int [] age = new int []{15,17,20,19};
(5)数组的访问:数组名[下标]
System.out.println(names[1]);
System.out.println(age[age.length]);
(6)数组的长度:数组名.length
输出所有的数组
for(int i=0;i<age.length;i++){
System.out.println(age[i]);
}
4.算法:
(1)顺序查找
练习1:(顺序查找法)
有一个数列:8,4,2,1,23,344,12
循环输出数列的值
求数列中所有数值的和
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
class HomeWorkZy10 {
public static void main(String[] args) {
int[] nums={8,4,2,1,23,344,12};
int sum=0;
for(int i=0;i<nums.length;i++){
sum=sum+nums[i];
System.out.println(nums[i]);
}
System.out.println("数组的和为:"+sum);
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数:");
int num2=input.nextInt();
boolean flag=false;//作标记,标记是否在数列中找到了当前数
for (int i = 0; i < nums.length; i++) {
if(num2==nums[i]){
flag=true;
break;
}
}
if (flag==true) {
System.out.println("数组中包含此数");
} else {
System.out.println("数组中不包含此数");
}
}
}
(2)二分查找(前提条件,数列一定要有顺序)
public class ErFen {
public static void main(String[] args) {
//用二分查找法,查询此数列中是否包含10
int[] nums={1,2,3,4,5,6,7,8,9};
int find=7;
int min=0;
int max=nums.length-1;//8
int mid=(max+min)/2;//4
boolean flag=false;//作标记
while(min<=max){
if(find==nums[mid]){
System.out.println("此数列中包含10");
flag=true;
break;
}else if(find>nums[mid]){
min=mid+1;//5
mid=(max+min)/2;//6
}else if(find<nums[mid]){
max=mid-1;//-1
mid=(max+min)/2;//0
}
}
if(flag==false){
System.out.println("此数列中不包含10");
}
}
}
(3)最大值最小值(打擂台)
public class MaxAndMin {
public static void main(String[] args) {
int[] nums={1,3,7,4,9,11,2,8};
int max=nums[0];
int min=nums[0];
for (int i = 1; i < nums.length; i++) {
if(max<nums[i]){
max=nums[i];
}
if (min>nums[i]) {
min=nums[i];
}
}
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
}
}
学会查看JDK API
arrays binarySearch
(4)数组的排序:java.util.Arrays这个类是系统,专门用来对数组操作
//用二分查找法,查找一个数组中是否包含某个元素,返回找到元素的下标
int result= Arrays.binarySearch(nums, find);
//对一个数组进行升序排
Arrays.sort(nums1);
public static void main(String[] args) {
int[] nums={1,2,3,4,5,6,7,8,9};
int find=10;
//用二分查找法,查找一个数组中是否包含某个元素,返回找到元素的下标
int result= Arrays.binarySearch(nums, find);
if(result>=0&&result<=nums.length-1){
System.out.println("找到了");
System.out.println("它在数组中的下标为:"+result);
}else{
System.out.println("没找到");
}
//对一个数组进行升序排序
int[] nums1={1,3,7,4,9,11,2,8};
System.out.println("排序前:");
for (int i = 0; i < nums1.length; i++) {
System.out.print(nums1[i]+"\t");
}
//对一个数组进行升序排
Arrays.sort(nums1);
System.out.println("\n升序排序后:");
for (int i = 0; i < nums1.length; i++) {
System.out.print(nums1[i]+"\t");
}
System.out.println("\n降序排序后:");
for (int i = nums1.length-1; i >=0; i--) {
System.out.print(nums1[i]+"\t");
}
}
}
(5)冒泡排序,外层循环控制轮数,内层循环控制次数
public final class MaoPao {
public static void main(String[] args) {
int[] nums={5,8,1,7,6 ,3};
System.out.println("冒泡排序前:");
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+"\t");
}
//冒泡排序,外层循环控制轮数,内层循环控制次数
for(int i=1;i<=nums.length-1;i++){
for(int j=1;j<=nums.length-i;j++){
if(nums[j-1]>nums[j]){
int temp;
temp=nums[j-1];
nums[j-1]=nums[j];
nums[j]=temp;
}
}
}
System.out.println("\n冒泡排序后:");
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+"\t");
}
}
}
(6)选择排序
/**
-
选择排序
-
/
public class Choose {
public static void main(String[] args) { int[] nums={5,8,1,7,6,3}; System.out.println("选择排序前:"); for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]+"\t"); } //选择排序,外层循环控制轮数,内层循环控制次数 for(int i=1;i<=nums.length-1;i++){//3 for(int j=i;j<=nums.length-1;j++){//5 if(nums[i-1]>nums[j]){ int temp; temp=nums[i-1]; nums[i-1]=nums[j]; nums[j]=temp; } } } System.out.println("\n冒泡排序后:"); for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]+"\t"); } }
}