zoukankan      html  css  js  c++  java
  • Java基础2

    文件结构

    数组

    Class5 / com.test1 / Demo5_1.java:

    1. /*  
    2.  * 功能:数组的必要性  
    3.  */  
    4.   
    5. package com.test1;   
    6.   
    7. public class Demo5_1 {   
    8.   
    9.     /**  
    10.      * @param args  
    11.      */  
    12.     public static void main(String[] args)    
    13.     {   
    14.         //定义一个可以存放六个float类型的数组   
    15.         float[] arr=new float[6];   
    16.         //给数组的各个元数赋值   
    17.         arr[0]=3;   
    18.         arr[1]=5;   
    19.         arr[2]=1;   
    20.         arr[3]=3.4f;   
    21.         arr[4]=2;   
    22.         arr[5]=50;   
    23.         //算总体重   
    24.         float all=0;   
    25.         for(int i=0;i<6;i++)   
    26.         {   
    27.             all+=arr[i];   
    28.         }   
    29.         System.out.println("总体重是:"+all);   
    30.            
    31.         //定义一个size=5的int数组   
    32.         int[] arr1;   
    33.         arr1=new int[5];   
    34.            
    35.         //如果你访问的数组范围大了   
    36.         //arr[5]=10;   
    37.         //如何知道数组的大小   
    38.         System.out.println("数组arr1的大小:"+arr1.length);   
    39.            
    40.         //滑板比赛   
    41.         float arr2[]={3,6,7.1f,1.1f,3};   
    42.         float all2=0;   
    43.         for(int i=0;i<arr2.length;i++)   
    44.         {   
    45.             all2+=arr2[i];   
    46.         }   
    47.         System.out.println("平均时间:"+(all2/arr2.length));   
    48.     }   
    49. }

    Class5 / com.test5_2 / Demo5_2.java:

    1. /*  
    2.  * 功能:对象数组的使用  
    3.  */  
    4.   
    5. package com.test1;   
    6.   
    7. import java.io.BufferedReader;   
    8. import java.io.InputStreamReader;   
    9.   
    10. public class Demo5_2 {   
    11.   
    12.     /**  
    13.      * @param args  
    14.      */  
    15.     public static void main(String[] args) throws Exception {   
    16.         //定义一个可以存放四只狗的对象数组   
    17.         Dog dogs[]=new Dog[4];   
    18.         //创建一个能存放4只狗的Dog[]对象数组   
    19.            
    20.         /*  
    21.         //给各个狗赋初值  
    22.         dogs[0]=new Dog();//将dogs[0]存放创建一只狗的空间的地址  
    23.         dogs[0].setName("花花");  
    24.         dogs[0].setWeight(4.5f);  
    25.         */  
    26.         //从控制台输入各个狗的信息   
    27.         InputStreamReader isr=new InputStreamReader(System.in);//IO流   
    28.         BufferedReader br=new BufferedReader(isr);//将IO流转成Buffer流   
    29.         for(int i=0;i<4;i++)   
    30.         {   
    31.             dogs[i]=new Dog();   
    32.             System.out.println("请输入第"+(i+1)+"只狗的狗名:");   
    33.             String name=br.readLine();//从控制台读取狗名   
    34.             System.out.println("请输入第"+(i+1)+"只狗的体重:");   
    35.             String s_weight=br.readLine();//从控制台读取体重   
    36.             float weight=Float.parseFloat(s_weight);//将String转成float类型   
    37.             //将名字赋给对象   
    38.             dogs[i].setName(name);   
    39.             //将体重赋给对象   
    40.             dogs[i].setWeight(weight);   
    41.                
    42.         }   
    43.         //计算总体重   
    44.         float allWeight=0;   
    45.         for(int i=0;i<4;i++)   
    46.         {   
    47.             allWeight+=dogs[i].getWeight();   
    48.         }   
    49.         //计算平均体重   
    50.         float avgWeight=allWeight/dogs.length;   
    51.         System.out.println("总体重="+allWeight+" 平均="+avgWeight);   
    52.            
    53.         //找出体重最大的狗   
    54.         //假设第一只狗体重最大   
    55.         float maxWeight=dogs[0].getWeight();   
    56.         int maxIndex=0;   
    57.         //依次比较狗的体重   
    58.         for(int i=1;i<dogs.length;i++)   
    59.         {   
    60.             if(maxWeight<dogs[i].getWeight())   
    61.             {   
    62.                 //修改   
    63.                 maxWeight=dogs[i].getWeight();   
    64.                 maxIndex=i;   
    65.             }   
    66.         }   
    67.         System.out.println("体重最大的狗是第"+(maxIndex+1)+"只狗,其体重是:"  
    68.                 +dogs[maxIndex].getWeight());   
    69.            
    70.         //输入狗的名字,查找它的体重   
    71.         BufferedReader nam=new BufferedReader(isr);   
    72.         System.out.println("请输入想要查找体重的狗的名字:");   
    73.         String dogName=nam.readLine();   
    74.         for(int i=1;i<dogs.length;i++)   
    75.         {   
    76.             if(dogName.equals(dogs[i].getName()))   
    77.             {   
    78.                 System.out.println(dogName+"的体重是:"+dogs[i].getWeight());   
    79.             }   
    80.         }   
    81.     }   
    82.     /*  
    83.      * 数组总结:  
    84.      * 1.数组可存放同一类型数据  
    85.      * 2.简单数据类型(int,float)数组,可直接赋值  
    86.      * 3.对象数组定义后,赋值时需要再次为每个对象分配空间[即:new 对象]  
    87.      * 4.数组大小 必须事先指定  
    88.      * 5.数组名可以理解为执行数组首地址的引用  
    89.      * 6.数组的下标是从0开始编号的  
    90.      */  
    91. }   
    92.   
    93. //定义一个狗类   
    94. class Dog   
    95. {   
    96.     private String name;   
    97.     private float weight;   
    98.     public float getWeight() {   
    99.         return weight;   
    100.     }   
    101.     public void setWeight(float weight) {   
    102.         this.weight = weight;   
    103.     }   
    104.     public String getName() {   
    105.         return name;   
    106.     }   
    107.     public void setName(String name) {   
    108.         this.name = name;   
    109.     }   
    110. }  

    Class5 / com.test1 / Demo5_5.java:

    1. /*  
    2.  * 功能:二维数组  
    3.  */  
    4.   
    5. package com.test1;   
    6.   
    7. public class Demo5_5 {   
    8.   
    9.     /**  
    10.      * @param args  
    11.      */  
    12.     public static void main(String[] args) {   
    13.         int[][] a=new int[4][6];   
    14.         a[1][2]=1;   
    15.         a[2][1]=2;   
    16.         a[2][3]=3;   
    17.         //把图形输出   
    18.         //行   
    19.         for(int i=0;i<4;i++)   
    20.         {   
    21.             //列   
    22.             for(int j=0;j<6;j++)   
    23.             {   
    24.                 System.out.print(a[i][j]+" ");   
    25.             }   
    26.             System.out.print("\n");   
    27.         }   
    28.     }   
    29. }

    排序与查找

    排序介绍

    冒泡排序

    选择排序

    快速排序

    Class5 / com.test1 / Demo5_3.java:

    1. /*  
    2.  * 功能:演示各种排序法  
    3.  */  
    4.   
    5. package com.test1;   
    6. import java.util.Calendar;   
    7.   
    8. public class Demo5_3 {   
    9.   
    10.     /**  
    11.      * @param args  
    12.      */  
    13.     public static void main(String[] args)    
    14.     {   
    15.         int len=10;   
    16.         int[] arr=new int[len];   
    17.         for(int i=0;i<len;i++)   
    18.         {   
    19.             //让程序随机产生一个1-10000的数   
    20.             //int t=(int)(Math.random()*10000);   
    21.             int t=(int)(Math.random()*100);   
    22.             //Math.random()会随机产生一个0~1的数   
    23.             arr[i]=t;   
    24.         }   
    25.         //int arr[]={1,6,0,-1,9,2,14,24,5};   
    26.            
    27.         //创建一个Bubble实例   
    28.         Bubble bubble=new Bubble();   
    29.         //在排序前打印系统时间   
    30.         Calendar cal=Calendar.getInstance();//获得实例    
    31.         System.out.print("冒泡排序前:"+cal.getTime());   
    32.            
    33.         bubble.sort(arr);//排序,通过引用修改arr数组的顺序   
    34.            
    35.         cal=Calendar.getInstance();//重新获得实例    
    36.         System.out.print("\n冒泡排序后:"+cal.getTime());   
    37.            
    38.         //输出冒泡排序后的结果,打印有序数列   
    39.         System.out.print("\n冒泡排序的结果:");   
    40.         for(int i=0;i<arr.length;i++)   
    41.         {   
    42.             System.out.print(arr[i]+" ");   
    43.         }   
    44.            
    45.         int a=12;   
    46.         bubble.test(a);//简单数据类型传到函数中,它的改变不会导致外面的修改   
    47.         System.out.println("\n\na="+a);   
    48.            
    49.         //-----------------------------------------------------   
    50.         //创建一个Select实例   
    51.         Select select=new Select();   
    52.         //在排序前打印系统时间   
    53.         cal=Calendar.getInstance();//获得实例    
    54.         System.out.print("\n选择排序前:"+cal.getTime());   
    55.            
    56.         //排序   
    57.         select.sort(arr);   
    58.            
    59.         cal=Calendar.getInstance();//重新获得实例    
    60.         System.out.print("\n选择排序后:"+cal.getTime());   
    61.            
    62.         //输出选择排序后的结果,打印有序数列   
    63.         System.out.print("\n选择排序的结果:");   
    64.         for(int i=0;i<arr.length;i++)   
    65.         {   
    66.             System.out.print(arr[i]+" ");   
    67.         }   
    68.            
    69.         //-------------------------------------------------   
    70.         //创建一个InsertSort实例   
    71.         InsertSort is=new InsertSort();   
    72.         //在排序前打印系统时间   
    73.         cal=Calendar.getInstance();//获得实例    
    74.         System.out.print("\n\n插入排序前:"+cal.getTime());   
    75.            
    76.         //排序   
    77.         is.sort(arr);   
    78.            
    79.         cal=Calendar.getInstance();//重新获得实例    
    80.         System.out.print("\n插入排序后:"+cal.getTime());   
    81.            
    82.         //输出选择排序后的结果,打印有序数列   
    83.         System.out.print("\n插入排序的结果:");   
    84.         for(int i=0;i<arr.length;i++)   
    85.         {   
    86.             System.out.print(arr[i]+" ");   
    87.         }   
    88.            
    89.         //-------------------------------------------------   
    90.         //创建一个QuickSort实例   
    91.         QuickSort qs=new QuickSort();   
    92.         //在排序前打印系统时间   
    93.         cal=Calendar.getInstance();//获得实例    
    94.         System.out.print("\n\n快速排序前:"+cal.getTime());   
    95.            
    96.         //排序   
    97.         qs.sort(0,arr.length-1,arr);   
    98.            
    99.         cal=Calendar.getInstance();//重新获得实例    
    100.         System.out.print("\n快速排序后:"+cal.getTime());   
    101.            
    102.         //输出选择排序后的结果,打印有序数列   
    103.         System.out.print("\n快速排序的结果:");   
    104.         for(int i=0;i<arr.length;i++)   
    105.         {   
    106.             System.out.print(arr[i]+" ");   
    107.         }   
    108.     }   
    109.   
    110. }   
    111.   
    112. class Bubble   
    113. {   
    114.     //测试   
    115.     public void test(int a)   
    116.     {   
    117.         a++;   
    118.     }   
    119.        
    120.     //冒泡排序   
    121.     public void sort(int arr[])   
    122.     {   
    123.         int temp=0;   
    124.         //外层循环,决定一共走几趟   
    125.         for(int i=0;i<arr.length-1;i++)   
    126.         {   
    127.             //内层循环,开始逐个比较,如果发现前一个数比后一个数大,则交换    
    128.             for(int j=0;j<arr.length-1-i;j++)   
    129.             {   
    130.                 if(arr[j]>arr[j+1])   
    131.                 {   
    132.                     //换位   
    133.                     temp=arr[j];   
    134.                     arr[j]=arr[j+1];   
    135.                     arr[j+1]=temp;   
    136.                 }   
    137.             }   
    138.         }   
    139.     }   
    140. }   
    141.   
    142. class Select   
    143. {   
    144.     //选择排序   
    145.     public void sort(int arr[])   
    146.     {   
    147.         int temp=0;//临时变量   
    148.         for(int j=0;j<arr.length-1;j++)   
    149.         //j<arr.length说明当只剩最后一个数没比较时,不必再比较了   
    150.         {   
    151.             //假设第j个数是最小的数   
    152.             int min=arr[j];   
    153.             //记录最小数的下标   
    154.             int minIndex=j;   
    155.             for(int k=j+1;k<arr.length;k++)   
    156.             //k<arr.length说明只剩两个数未比较时,最后一个数要参与比较   
    157.             {   
    158.                 if(min>arr[k])   
    159.                 {   
    160.                     //修改最小   
    161.                     min=arr[k];   
    162.                     minIndex=k;   
    163.                 }   
    164.             }   
    165.             //当退出内层for循环时,就找到这次的最小值   
    166.             temp=arr[j];   
    167.             arr[j]=arr[minIndex];   
    168.             arr[minIndex]=temp;   
    169.         }   
    170.     }   
    171. }   
    172.   
    173. //插入排序   
    174. class InsertSort   
    175. {   
    176.     //插入排序方法   
    177.     public void sort(int arr[])   
    178.     {   
    179.         for(int i=1;i<arr.length;i++)   
    180.         {   
    181.             int insertVal=arr[i];   
    182.             //insertVal准备和前一个数比较   
    183.             int index=i-1;   
    184.             while(index>=0&&insertVal<arr[index])   
    185.             {   
    186.                 //将把arr[index]向后移动一位   
    187.                 arr[index+1]=arr[index];   
    188.                 //让index向前移动   
    189.                 index--;   
    190.             }   
    191.             //将insertVal插入到行当 位置   
    192.             arr[index+1]=insertVal;   
    193.         }   
    194.     }   
    195. }   
    196.   
    197. //快速排序   
    198. class QuickSort   
    199. {   
    200.     public void sort(int left,int right,int[] array)   
    201.     {   
    202.         int l=left;//左边   
    203.         int r=right;//右边   
    204.         int pivot=array[(left+right)/2];//中间的作为隔板数   
    205.         int temp=0;   
    206.         while(l<r)   
    207.         {   
    208.             while(array[l]<pivot) l++;   
    209.             while(array[r]>pivot) r--;   
    210.             if(l>=r) break;   
    211.             temp=array[l];   
    212.             array[l]=array[r];   
    213.             array[r]=temp;   
    214.                
    215.             if(array[l]==pivot) --r;   
    216.             if(array[r]==pivot) ++l;   
    217.         }   
    218.         if(l==r)   
    219.         {   
    220.             l++;   
    221.             r--;   
    222.         }   
    223.         if(left<r) sort(left,r,array);   
    224.         if(right>l) sort(l,right,array);            
    225.     }   
    226. }  

    Class5 / com.test1 / Demo5_4.java:

    1. /*  
    2.  * 功能:二分查找  
    3.  */  
    4.   
    5. package com.test1;   
    6.   
    7. public class Demo5_4 {   
    8.   
    9.     /**  
    10.      * @param args  
    11.      */  
    12.     public static void main(String[] args) {   
    13.         int arr[]={2,5,7,12,25};   
    14.         BinaryFind bf=new BinaryFind();   
    15.         bf.find(0, arr.length-14, arr);   
    16.     }   
    17. }   
    18.   
    19. //二分查找   
    20. class BinaryFind   
    21. {   
    22.     public void find(int leftIndex,int rightIndex,int val,int[] arr)   
    23.     {   
    24.         //首先找到中间的数   
    25.         int midIndex=(rightIndex+leftIndex)/2;   
    26.         int midVal=arr[midIndex];   
    27.         if(rightIndex>=leftIndex)   
    28.         {   
    29.             //如果要找的数比midVal大   
    30.             if(midVal>val)   
    31.             {   
    32.                 //在arr的左边数中找   
    33.                 find(leftIndex,midIndex-1,val,arr);//递归   
    34.             }   
    35.             else if(midVal<val)   
    36.             {   
    37.                 //在arr的右边的数找   
    38.                 find(midIndex+1,rightIndex,val,arr);//递归   
    39.             }   
    40.             else if(midVal==val)   
    41.             {   
    42.                 System.out.println("找到下标"+midIndex);   
    43.             }   
    44.         }   
    45.         else  
    46.         {   
    47.             System.out.println("没有找到!");   
    48.         }   
    49.     }   
    50. }

    集合类及移位运算

    Class7 / com.test1 / Demo7_1.java:

    1. /*  
    2.  * 功能:演示java集合的用法  
    3.  */  
    4.   
    5. package com.test1;   
    6. import java.util.*;   
    7. public class Demo7_1 {   
    8.   
    9.     /**  
    10.      * @param args  
    11.      */  
    12.     public static void main(String[] args) {   
    13.         //定数组   
    14.         //Clerk []clerks=new Clerk[???];   
    15.         //定义ArrayList对象   
    16.         ArrayList al=new ArrayList();   
    17.         //显示大小   
    18.         System.out.println("al大小:"+al.size());   
    19.         //向al中加入数据(类型是object)   
    20.         //创建一个职员   
    21.         Clerk clerk1=new Clerk("宋江",50,1000);   
    22.         Clerk clerk2=new Clerk("吴用",45,1200);   
    23.         Clerk clerk3=new Clerk("林冲",35,1300);   
    24.         //将clerk1加入到al中   
    25.         al.add(clerk1);   
    26.         al.add(clerk2);   
    27.         al.add(clerk3);   
    28.         //显示大小   
    29.         System.out.println("al大小:"+al.size());   
    30.         //如何访问al中对象(数据)   
    31.         //访问第一个对象   
    32.         Clerk temp=(Clerk)al.get(0);//因为get返回的是一个object   
    33.         System.out.println("第一个名字是:"+temp.getName());   
    34.            
    35.         //遍历al所有的对象   
    36.         System.out.println("删除前");   
    37.         for(int i=0;i<al.size();i++)   
    38.         {   
    39.             Clerk temp1=(Clerk)al.get(i);   
    40.             System.out.println("名字是:"+temp1.getName());   
    41.         }   
    42.         //从al中删除一个对象   
    43.         al.remove(1);//删除吴用   
    44.         System.out.println("=====删除吴用======");   
    45.         //删除后   
    46.         System.out.println("删除后");   
    47.         for(int i=0;i<al.size();i++)   
    48.         {   
    49.             Clerk temp1=(Clerk)al.get(i);   
    50.             System.out.println("名字是:"+temp1.getName());   
    51.         }   
    52.     }   
    53.   
    54. }   
    55.   
    56. //定义一个员工类   
    57. class Clerk   
    58. {   
    59.     private String name;   
    60.     private int age;   
    61.     private float sal;   
    62.        
    63.     public String getName() {   
    64.         return name;   
    65.     }   
    66.   
    67.     public void setName(String name) {   
    68.         this.name = name;   
    69.     }   
    70.   
    71.     public int getAge() {   
    72.         return age;   
    73.     }   
    74.   
    75.     public void setAge(int age) {   
    76.         this.age = age;   
    77.     }   
    78.   
    79.     public float getSal() {   
    80.         return sal;   
    81.     }   
    82.   
    83.     public void setSal(float sal) {   
    84.         this.sal = sal;   
    85.     }   
    86.        
    87.     public Clerk(String name,int age,float sal)   
    88.     {   
    89.         this.name=name;   
    90.         this.age=age;   
    91.         this.sal=sal;   
    92.     }   

    Class7 / com.test1 / Demo7_2.java:

    1. /*  
    2.  * 功能:做一个公司职员薪水管理系统,要求完成如下功能 :  
    3.  * 1.当有新员工时,将该员工加入到管理系统  
    4.  * 2.可以根据员工号,显示该员工的信息  
    5.  * 3.可以显示所员工信息  
    6.  * 4.可以修改员工薪水  
    7.  * 5.当员工离职时,将该员工从管理系统中删除  
    8.  * 6.可以按照薪水从低到高顺序排序  
    9.  * 7.可以统计员工的平均工资和最低、最高工资  
    10.  */  
    11.   
    12. package com.test1;   
    13.   
    14. import java.io.BufferedReader;   
    15. import java.io.IOException;   
    16. import java.io.InputStreamReader;   
    17. import java.util.ArrayList;   
    18.   
    19. public class Demo7_2 {   
    20.   
    21.     /**  
    22.      * @param args  
    23.      * @throws IOException   
    24.      */  
    25.     public static void main(String[] args) throws IOException {   
    26.         //演示   
    27.         String a=new String("abc");   
    28.         String b=new String("abc");   
    29.         if(a==b)   
    30.         {   
    31.             System.out.println("== ok");   
    32.         }   
    33.         else if(a.equals(b))   
    34.         {   
    35.             System.out.println("equals ok");   
    36.         }   
    37.         else ;   
    38.            
    39.         //创建EmpManage对象   
    40.         EmpManage em=new EmpManage();   
    41.         //Emp emptemp=new Emp(null,null,0);   
    42.         //定义一个BufferedReader流   
    43.         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));   
    44.         //作出一个简单菜单   
    45.         while(true)   
    46.         {   
    47.             System.out.println("请选择你要进行的操作:");   
    48.             System.out.println("1:表示添加一个雇员");   
    49.             System.out.println("2:查找一个雇员");   
    50.             System.out.println("3:显示所有雇员信息");   
    51.             System.out.println("4:修改一个雇员工资");   
    52.             System.out.println("5:删除一个雇员");   
    53.             System.out.println("6:退出系统");   
    54.                
    55.             String operType=br.readLine();   
    56.                
    57.             if(operType.equals("1"))   
    58.             {   
    59.                 System.out.println("请输入编号:");   
    60.                 String empNo=br.readLine();   
    61.                 System.out.println("请输入名字:");   
    62.                 String name=br.readLine();   
    63.                 System.out.println("请输入工资:");   
    64.                 float sal=Float.parseFloat(br.readLine());   
    65.                    
    66.                 Emp emp=new Emp(empNo,name,sal);   
    67.                 Emp emptemp=em.addEmp(emp);   
    68.                 //这里的"="相当于将返回的emp内存块直接复制一份给emptemp,即创建的同时   
    69.                 //也就初始化了,所心不必再考的emptemp内部的属性是private,还是public,"="相当于直接复制   
    70.                 System.out.println("=====添加"+emptemp.getName()+"成功!======\n");   
    71.             }   
    72.             else if(operType.equals("2"))   
    73.             {   
    74.                 System.out.println("请输入编号:");   
    75.                 String empNo=br.readLine();   
    76.                 //查找   
    77.                 Emp emptemp=em.showInfo(empNo);   
    78.                 System.out.println("=====查找"+empNo+"("+emptemp.getName()+")"+"成功!======\n");   
    79.             }   
    80.             else if(operType.equals("3"))   
    81.             {   
    82.                 //显示所有员工信息   
    83.                 em.showAllInfo();   
    84.                 System.out.println("=====已列出!======\n");   
    85.             }   
    86.             else if(operType.equals("4"))   
    87.             {   
    88.                 System.out.println("请输入编号:");   
    89.                 String empNo=br.readLine();   
    90.                 System.out.println("请输入工资:");   
    91.                 float sal=Float.parseFloat(br.readLine());   
    92.                 //修改   
    93.                 Emp emptemp=em.updateSal(empNo, sal);   
    94.                 System.out.println("=====修改"+empNo+"("+emptemp.getName()+")"+"工资成功!======\n");   
    95.             }   
    96.             else if(operType.equals("5"))   
    97.             {   
    98.                 System.out.println("请输入编号:");   
    99.                 String empNo=br.readLine();   
    100.                 //删除   
    101.                 Emp emptemp=em.delEmp(empNo);   
    102.                 System.out.println("=====删除"+empNo+"("+emptemp.getName()+")"+"成功!======\n");   
    103.             }   
    104.             else if(operType.equals("6"))   
    105.             {   
    106.                 //退出系统   
    107.                 System.exit(0);//0表示正常退出JVM,非0表示异常退出JVM   
    108.             }   
    109.         }   
    110.            
    111.     }   
    112.   
    113. }   
    114.   
    115. //雇员类   
    116. class Emp   
    117. {   
    118.     //学号   
    119.     private String empNo;   
    120.     private String name;   
    121.     private float sal;   
    122.     public String getEmpNo() {   
    123.         return empNo;   
    124.     }   
    125.     public void setEmpNo(String empNo) {   
    126.         this.empNo = empNo;   
    127.     }   
    128.     public String getName() {   
    129.         return name;   
    130.     }   
    131.     public void setName(String name) {   
    132.         this.name = name;   
    133.     }   
    134.     public float getSal() {   
    135.         return sal;   
    136.     }   
    137.     public void setSal(float sal) {   
    138.         this.sal = sal;   
    139.     }   
    140.        
    141.     //构造函数   
    142.     public Emp(String empNo,String name,float sal)   
    143.     {   
    144.         this.empNo=empNo;   
    145.         this.name=name;   
    146.         this.sal=sal;   
    147.     }   
    148. }   
    149.   
    150. //雇员管理类   
    151. class EmpManage   
    152. {   
    153.     private ArrayList al=null;   
    154.     public EmpManage()   
    155.     {   
    156.         al=new ArrayList();   
    157.     }   
    158.     //加入员工   
    159.     public Emp addEmp(Emp emp)   
    160.     {   
    161.         if(al.add(emp))//如果添加成功   
    162.             return emp;   
    163.         else  
    164.             return null;   
    165.     }   
    166.     //显示指定员工的相关信息   
    167.     public Emp showInfo(String empNo)   
    168.     {   
    169.         //遍历整个ArrayList   
    170.         for(int i=0;i<al.size();i++)   
    171.         {   
    172.             //取出Emp对象   
    173.             Emp emp=(Emp)al.get(i);   
    174.             //比较编号   
    175.             if(emp.getEmpNo().equals(empNo));   
    176.             {   
    177.                 System.out.println("找到该员工,他的信息是:");   
    178.                 System.out.println("编号="+emp.getEmpNo());   
    179.                 System.out.println("名字="+emp.getName());   
    180.                 System.out.println("工资="+emp.getSal());   
    181.                    
    182.                 return emp;   
    183.             }   
    184.         }   
    185.         return null;   
    186.     }   
    187.     //显示所有员工的信息   
    188.     public void showAllInfo()   
    189.     {   
    190.         //遍历整个ArrayList   
    191.         for(int i=0;i<al.size();i++)   
    192.         {   
    193.             Emp emp=(Emp)al.get(i);   
    194.             System.out.print("编号:"+emp.getEmpNo()+" "  
    195.                     +"名字:"+emp.getName()+" "  
    196.                     +"工资:"+emp.getSal()+" "+"\n");   
    197.         }   
    198.     }   
    199.     //修改工资   
    200.     public Emp updateSal(String empNo,float newSal)   
    201.     {   
    202.         for(int i=0;i<al.size();i++)   
    203.         {   
    204.             Emp emp=(Emp)al.get(i);   
    205.             if(emp.getEmpNo().equals(empNo))   
    206.             {   
    207.                 //修改薪水   
    208.                 emp.setSal(newSal);   
    209.                 return emp;   
    210.             }   
    211.         }   
    212.         return null;   
    213.     }   
    214.     //删除员工   
    215.     public Emp delEmp(String empNo)   
    216.     {   
    217.            
    218.         for(int i=0;i<al.size();i++)   
    219.         {   
    220.             Emp emp=(Emp)al.get(i);   
    221.             if(emp.getEmpNo().equals(empNo))   
    222.             {   
    223.                 al.remove(i);//按编号删除员工   
    224.                 al.remove(emp);//按对象删除员工   
    225.                 return emp;   
    226.             }   
    227.         }   
    228.         return null;   
    229.     }   

    Class7 / com.test1 / Demo7_3.java:

    1. /*  
    2.  * 功能:各种集合的使用  
    3.  */  
    4. package com.test1;   
    5.   
    6. import java.util.HashMap;   
    7. import java.util.Hashtable;   
    8. import java.util.Iterator;   
    9. import java.util.LinkedList;   
    10. import java.util.Stack;   
    11. import java.util.Vector;   
    12.   
    13. public class Demo7_3 {   
    14.   
    15.     /**  
    16.      * @param args  
    17.      */  
    18.     public static void main(String[] args) {   
    19.         //LinkedList的用法   
    20.         LinkedList ll=new LinkedList();   
    21.         Emp emp1=new Emp("sa01","宋江",1.2f);   
    22.         Emp emp2=new Emp("sa02","卢俊义",1.8f);   
    23.         Emp emp3=new Emp("sa03","吴用",1.5f);   
    24.         //表示把emp1加在链表的最前面   
    25.         ll.addFirst(emp1);//向链表的当前结点的前面添加一个emp1结点   
    26.         ll.addFirst(emp2);//前加   
    27.         ll.addLast(emp3);//后加   
    28.         for(int i=0;i<ll.size();i++)   
    29.         {   
    30.             System.out.println(((Emp)ll.get(i)).getName());   
    31.         }   
    32.         //------------------------------------------------------   
    33.         //Vector的用法   
    34.         //Vector与ArrayList的区别   
    35.         //1.Vector有同步机制,ArrayList没有同步机制    
    36.         //2.ArrayList缺省情况下自动增长原来的一倍,Vector是原来的50%增长   
    37.         Vector vv=new Vector();   
    38.         Emp emp4=new Emp("1","林冲",1.6f);   
    39.         vv.add(emp4);   
    40.         for(int i=0;i<vv.size();i++)   
    41.         {   
    42.             Emp emp=(Emp)vv.get(i);   
    43.             System.out.println(emp.getName());   
    44.         }   
    45.         //------------------------------------------------------   
    46.         //栈的用法   
    47.         Stack stack=new Stack();   
    48.         Emp emp5=new Emp("8","李逵",1.9f);   
    49.         Emp emp6=new Emp("9","武松",1.7f);   
    50.         Emp emp7=new Emp("5","公孙胜",1.7f);   
    51.         stack.add(emp5);   
    52.         stack.add(emp6);   
    53.         stack.add(emp7);   
    54.         for(int i=0;i<stack.size();i++)   
    55.         {   
    56.             Emp emp=(Emp)stack.get(i);   
    57.             System.out.println(emp.getName());   
    58.         }   
    59.         //------------------------------------------------------   
    60.         //HashMap的用法   
    61.         //创建一个HashMap对象   
    62.         HashMap hm=new HashMap();   
    63.         Emp emp8=new Emp("s001","秦平",2.2f);   
    64.         Emp emp9=new Emp("s002","花荣",2.3f);   
    65.         Emp emp10=new Emp("s002","燕青",2.4f);   
    66.         //将emp放入到   
    67.         hm.put("s001", emp8);   
    68.         hm.put("s002", emp9);   
    69.         hm.put("s002", emp10);//出现键值相同时,会将emp10替换前面的   
    70.         System.out.println(emp8.getName());   
    71.         System.out.println(emp9.getName());   
    72.            
    73.         //如果要查找编号是s002   
    74.         if(hm.containsKey("s002"))   
    75.         {   
    76.             System.out.println("-----------\n有该员工");   
    77.             //如何取出,键<-->值   
    78.             Emp emp=(Emp)hm.get("s002");   
    79.             System.out.println("名字:"+emp.getName());   
    80.         }   
    81.         else  
    82.         {   
    83.             System.out.println("-----------\n没有该员工");   
    84.         }   
    85.            
    86.         //遍历HashMap中所有的key和value   
    87.         Iterator it=hm.keySet().iterator();//迭代器   
    88.         //hasNext返回一个boolean   
    89.         System.out.println("-------开始遍历HashMap!------");   
    90.         while(it.hasNext())//hasNext判断是否还有下一个   
    91.         {   
    92.             //取出Key   
    93.             String key=it.next().toString();   
    94.             //通过Key取出value   
    95.             Emp emp=(Emp)hm.get(key);   
    96.             System.out.println("名字:"+emp.getName());   
    97.         }   
    98.         //HashMap在多线程并发操作时,因为没有同步机制作,   
    99.         //可能会发生读脏数据,所以引入了安全的Hashtable   
    100.         //------------------------------------------------------   
    101.         //Hashtable的用法   
    102.         Hashtable ht=new Hashtable();   
    103.         /*  
    104.         ht.put(null, null);  
    105.         System.out.println("Hashtable null值测试"+ht.get(null));  
    106.         //Hashtable不可以存放空值  
    107.         */  
    108.         HashMap hm2=new HashMap();   
    109.         hm2.put(nullnull);//HashMap可以存放空值   
    110.         System.out.println("HashMap null值测试:"+hm2.get(null));   
    111.         //Hashtable不可以存放空值   
    112.            
    113.         /*  
    114.          * 集合总结:  
    115.          * 1.如果要求线程安全,使用Vector,Hashtable  
    116.          * 2.如果要求线程安全,使用ArrayList,LinkedList,HashMap  
    117.          * 3.如果要求键值对,则使用HashMap,Hashtable  
    118.          * 4.如果数据量很大,又要线程安全考虑Vector  
    119.          */  
    120.     }   
    121. }

    Class7 / com.test1 / Test1.java:

    1. /*  
    2.  * 功能:位运算和移位运算  
    3.  */  
    4.   
    5. package com.test1;   
    6.   
    7. public class Test1 {   
    8.   
    9.     /**  
    10.      * @param args  
    11.      */  
    12.     public static void main(String[] args) {   
    13.         System.out.println("~2="+(~2));//取反   
    14.         System.out.println("2&3="+(2&3));//与   
    15.         System.out.println("2|3="+(2|3));//或   
    16.         System.out.println("~-5="+(~-5));//取反   
    17.         System.out.println("-3^3="+(-3^3));//异或   
    18.   
    19.         //算术右移:低位溢出,符号位不变,并用符号位补溢出的高位   
    20.         //算术左移:符号位不变,低位补0   
    21.         //逻辑右移:低位溢出,高位补零   
    22.         System.out.println("1>>2="+(1>>2));   
    23.         System.out.println("-1>>2="+(-1>>2));   
    24.         System.out.println("1<<2="+(1<<2));   
    25.         System.out.println("-1<<2="+(-1<<2));   
    26.         System.out.println("3>>>2="+(3>>>2));//逻辑右移   
    27.     }   
    28. }
  • 相关阅读:
    使用Mongodb存放文件系统的离线栅格数据,供Cesium访问
    Moogose的基本连接以及增删改查操作
    MongoDB
    Linq对列表进行分组,求和,排序
    ArcEngine对属性表的操作
    ArcEngine打开GDB,SHP的方法
    javaweb之JSP+Servlet
    node.js后端之sequelize
    javascript的闭包
    LeetCode 第133场周赛总结
  • 原文地址:https://www.cnblogs.com/luowei010101/p/2074440.html
Copyright © 2011-2022 走看看