千锋Java&Day23课后作业

今天学习了集合的概念、Collection体系集合、List子接口和List实现类。

努力到无能为力,拼搏到感动自己!
加油!

2.(List)有如下代码

import java.util.*; 
public class TestList{
     public static void main(String args[]){
        List<String> list = new ArrayList<String> ();
       list.add(“Hello”);
       list.add(“World”);
       list.add(1,“Learn”);
       list.add(1,“Java”);
       printList(list);
     }
     public static void printList(List list){
     //1
     }
  }
  要求:
  1)//1 处的代码补充完整,要求输出 list 中所有元素的内容
  2)写出程序执行的结果
  3)如果要把实现类由 ArrayList 换为 LinkedList,应该改哪里?ArrayList 和 LinkedList 使用上有什么区别?实现上有什么区别?
  4)如果要把实现类由 ArrayList 换为 Vector,应该改哪里?ArrayList 和 Vector 使用上有什么区别?实现上有什么区别?
第一问:
 import java.util.ArrayList;
    import java.util.List;    
        public class TestList {        
          public static void main(String args[]) {           
            List list = new ArrayList();            
            list.add("Hello");            
            list.add("World");           
             list.add(1, "Learn");            
             list.add(1, "Java");            
             printList(list);        
           }         
           public static void printList(List list) {           
            // 1            
            System.out.println(list);            
           }                  
}

第二问:
[Hello, Java, Learn, World]

第三问:
   List list=new LinkedList(); 
   
   ArrayList
        1. 基于数组        
        2. 默认容量为10,每次扩容上一次的一半;内存空间连续
        3. 增删元素较慢--移动元素        
        4. 查询较快--下标        
        5. 线程不安全        
   LinkedList         
        1. 基于链表         
        2. 内存空间不连续         
        3. 增删元素较快         
        4. 查询较慢         
        5. 线程不安全         
        
第四问:
        List list=new Vector();       
           
   Vector        
        1. 基于数组        
        2. 初始大小:10        
        3. 扩容:每次扩容一倍,内存空间连续        
        4. 增删较慢,查询较快         
        5. 线程安全        
        6. java的最早的集合       

3.(List)写出下面程序的运行结果

import java.util.*;
      public class TestList{
           public static void main(String args[]){
             List<String> list = new ArrayList<String>(); 
             list.add(“Hello”);                  
             list.add(“World”);
             list.add(“Hello”);
             list.add(“Learn”);
             list.remove(“Hello”);
             list.remove(0);
             for(int i = 0; i<list.size(); i++){
                  System.out.println(list.get(i));
                 }
        }
}
Hello
Learn

5.(List)已知有一个 Worker 类如下:

public class Worker {
         private int age; 
         private String name; 
         private double salary; 
         public Worker (){}
      public Worker (String name, int age, double salary){ 
         this.name = name;
         this.age = age; 
         this.salary = salary;
       }
       public int getAge() { 
           return age;
       }
       public void setAge(int age) { 
            this.age = age;
       }
       public String getName() {
            return name;
       }
       public void setName(String name) {
            this.name = name;
       }
       public double getSalary(){
            return salary;
       }
       public void setSalary(double salary){
             this.salary = salary;
       }
       public void work(){
             System.out.println(name + “ work”);
       }
}
完成下面的要求:
1)创建一个 List,在 List 中增加三个工人,基本信息如下
    姓名    年龄     工资
    zhang3   18       3000
    li4        25       3500
    wang5   22       3200
2)在 li4 之前插入一个工人,信息为:
    姓名:zhao6,年龄:24,工资 3300 
3)删除 wang5 的信息
4)利用 for 循环遍历,打印 List 中所有工人的信息利用 for-each 遍历,对 List 中所有的工人调用 work 方法。
5)为 Worker 类添加 equals 方法
import java.util.*;
       class Worker{	
            private int age; 
            private String name;	
            private double salary;	
            public Worker(){}	
            public Worker(String name,int age,double salary){	
            	this.name=name;		
            	this.age=age;		
            	this.salary=salary;		
            }	
            
            public int getAge(){		
                return age;		
            }
            
            public void setAge(int age){	
            	this.age=age;		
            }
            public String getName(){	
               return name;	
             }
            public void setName(String name){
            	this.name=name;	
            }
            public double getSalary(){
            	return salary;
            }
            public void setSalary(double salary){
            	this.salary=salary;	
            }
            public void work(){	
               System.out.println(name+"work");
           	}
           	public boolean equals(Object obj){  
           	  Worker w =(Worker)obj;  
               if(this.name==w.name
                &&this.age==w.age
                &&this.salary==w.salary){	 
                 return true;  
                 }  	
                 return false;
                 }
              }
                public  class Test5 {
                	public static void main(String[] args) {	
                	// 1) 创建一个 List,在 List 中增加三个工人,基本信息如下:
                   // 姓名 年龄  工资      
                  // zhang3 18    3000       
                   // li4      25   3500      
                   // wang5 22   3200 
                		List<Worker>list = new ArrayList();		
                		list.add(new Worker("zhang3",18,3000));
                		list.add(new Worker("li4",25,3500));		
                		list.add(new Worker("wang5",22,3200));
                	    // 2) 在 li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资 3300
                	    list.add(2, new Worker("zhao6",24,3300));
                	    // 3) 删除 wang5 的信息
                	    list.remove(3);			
                	    // 4) 利用 for 循环遍历,打印 List 中所有工人的信息
                	  	for (int i = 0; i < list.size(); i++) {		
                	  	Worker w = list.get(i);	                 
                	      	System.out.println(w.getName()+"\t"
                	  	        +w.getAge()+"\t"+w.getSalary());	
                	  	}				
                	  	    for (Worker worker : list) {
                	  	    		worker.work();	
                	  	    	}		                	  	    			 
                	  	    System.out.println(list.get(0)==list.get(1));	
                }	
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值