在千锋逆战学习的第23天
日日行,不怕千万里,日日做,不怕千万事!加油!
今天学习了集合的概念、Collection体系集合、List子接口和List实现类。
今天的作业如下:
2.有如下代码
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
}
}
I.1处的代码如下
public static void printList(List list){
//1
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
II.程序执行的结果
III.改new的对象,把ArrayList改为LinkedList,ArrayList时数组结构实现,查询快、增删慢,LinkedList是链表结构实现,增删快、查询慢。
IV.把ArrayList改为Vector,两个都是数组结构实现,ArrayList运行效率快、线程不安全,Vector运行效率慢、线程安全
3.写出下面程序的运行结果
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));
}
}
}
运行结果
5.已知有一个Worker类如下:
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");
}
}
代码如下:
import java.util.*;
public class TestWorker {
public static void main(String[] args) {
List<Worker> workers = new ArrayList<Worker>();
Worker w1 = new Worker("zhang3",18,3000.0);
Worker w2 = new Worker("li4",25,3500.0);
Worker w3 = new Worker("wang5",22,3200.0);
Worker w4 = new Worker("zhao6",24,3300.0);
workers.add(w1);
workers.add(w2);
workers.add(w3);
System.out.println("-----打印List中所有工人信息------------------");
workers.add(1, w4);//在li4之前插入zhao6
workers.remove(w3);//删除wang5的信息
for (int i = 0; i <workers.size() ; i++) {
System.out.println(workers.get(i));
}
System.out.println("-----for-each遍历,对所有工人调用work方法--------------------");
for (Worker w : workers) {
w.work();
}
System.out.println("-----用equals方法比较------------------");
System.out.println(w1.equals(w2));
}
}
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");
}
//覆盖toString方法
public String toString(){
return "姓名:"+name + "\t年龄:"+age + "\t工资:"+salary;
}
//添加equals方法
@Override
public boolean equals(Object obj) {
//比较地址是否一样
if(this==obj){
return true;
}
//确认对象不能为null
if(obj == null){
return false;
}
//确认类型
if(obj.getClass() != this.getClass()){
return false;
}
//转型
Worker w = (Worker)obj;
//比较内容
if(this.name.equals(w.name) && this.age==w.age && this.salary==w.salary){
return true;
}
return false;
}
}
运行结果:
欢迎指正