千锋逆战班
在千锋"逆战”学习第23天,
每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运!
加油!

2(List)有如下代码

import java.util.*;
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
}
}
要求:
1) 把//1 处的代码补充完整,要求输出 list 中所有元素的内容
2) 写出程序执行的结果
3) 如果要把实现类由 ArrayList 换为 LinkedList,应该改哪里?ArrayList
和 LinkedList 使用上有什么区别?实现上有什么区别?
4) 如果要把实现类由 ArrayList 换为 Vector,应该改哪里?ArrayList 和
Vector 使用上有什么区别?实现上有什么区别?
public class TestList {public static void main(String[] args) {// TODO Auto-generated method stub//List<String> list=new ArrayList<String>();//List list=new ArrayList();List list=new ArrayList();list.add("Hello");list.add("World");list.add(1,"Lean");list.add(1, "java");printList(list);}public static void printList(List list) {for(int i=0;i<list.size();i++) {System.out.println(list.get(i));}}
}
Hello
java
Lean
World
3. 题List list=new LinkedList();     ArrayList1. 基于数组2. 默认容量为10,每次扩容上一次的一半;内存空间连续3. 增删元素较慢--移动元素4. 查询较快--下标5. 线程不安全LinkedList1. 基于链表2. 内存空间不连续3. 增删元素较快4. 查询较慢5. 线程不安全
4. 题List list=new Vector();     Vector1. 基于数组2. 初始大小:103. 扩容:每次扩容一倍,内存空间连续4. 增删较慢,查询较快 5. 线程安全6. java的最早的集合

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

public class Test3 {public static void main(String[] args) {// TODO Auto-generated method stubList<String> list=new LinkedList<String>();list.add("Hello");list.add("World");list.add("Hello");list.add("Lean");list.add("World");list.remove(0);for(int i=0;i<list.size();i++) {System.out.println(list.get(i));}}}
World
Hello
Lean
World

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 中所有工人的信息
5) 利用迭代遍历,对 List 中所有的工人调用 work 方法。
import java.util.ArrayList;
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 void work() {System.out.println(name+"work");}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 int hashCode() {int result=0;if(name!=null) {result=name.hashCode();}return result+age;}public boolean equals(Worker worker){if(this==worker) {return true;}if(worker==null) {return false;}if(worker.getClass()!=this.getClass()) {return false;}if(this.name == worker.name &&(this.age == worker.age)&& (this.salary == worker.salary)) {return true;}else {return false;}}
}
public class Test5{public static void main(String[] args) {List<Worker> list=new ArrayList<Worker>();list.add(new Worker("zhang3",18,3000));list.add(new Worker("li4",25,3500));list.add(new Worker("wang5",22,3200));list.add(1, new Worker("zhao6",24,3300));list.remove(3);list.add(new Worker("wang5",22,3200));for(int i=0;i<list.size();i++) {System.out.println(list.get(i));}for(Iterator<Worker> it=list.iterator();it.hasNext();) {it.next().work();}

总结

集合:

  1. Collection体系集合:
    I. Collection父接口:该体系结构的根接口,代表一组对象,称为“集合”,每个对象都是该集合的“元素”。
    II. List接口的特点:有序、有下标、元素可重复。
    III. Set接口的特点:无序、无下标、元素不可重复。

  2. List子接口:
    I. 特点:有序、有下标、元素可以重复。
    II. 继承可父接口提供的共性方法,同时定义了一些独有的与下标相关的操作方法。

  3. List实现类:
    I. JDK8的ArrayList,实际初始长度是0
    II. 首次添加元素时,需要实际分配数组空间,执行数组扩容操作
    III. 真正向数组中插入数据,(Lazy懒)用的时候再创建,或再加载,有效的降低无用内存的占用

  4. ArrayList:
    I. 数组结构存储,查询快,增删慢。//注册(1次)-> 查询(N次)
    II. JDK 1.2发布,执行效率快,线程不安全。

  5. Vector:
    I. 数组结构存储,查询快,增删慢。
    II. JDK 1.0发布,执行效率慢,线程安全。

  6. LinkedList:
    I. 链表(链接列表)结构存储,查询慢、增删快。
    II. 了解:Queue接口:队列、双端队列
    III. 了解:栈结构Last In First Out(后进先出)
    IV. 了解:队列结构First In First Out(先进先出)

千锋逆战班学习第二十三天 集合练习(一)相关推荐

  1. 千锋逆战班学习第二十五天

    千锋逆战班学习第25天 努力或许没有收获,但不努力一定没收获,加油. 今天我学了Java课程的集合. 中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!! 4.有如下代码: public cla ...

  2. 千锋逆战班学习第二十四天

    千锋逆战班 在千锋"逆战"学习第24天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 1(Object类)有下面代码 interface IA{v ...

  3. 千锋逆战班学习日志Day47

    千锋逆战班学习第47天 表单标签 CSS介绍 二.CSS和HTML结合 2.1CSS和HTML结合之内联结合 2.2CSS与HTML结合之内部部结合 2.3CSS和HTML结合之外部结合 三.访问路径 ...

  4. 千锋逆战班学习的第17天,final

    千锋学习的第17天今天学习的是 三大修饰符final中国加油,武汉加油. 七(final属性的初始化)有如下代码 1) class MyClass{ 2) final in value; 3) pub ...

  5. 1903java全套_#千锋逆战班,java1903#

    在千锋"逆战"学习第17天 SpringMVC运行流程: SpringMVC基础配置: 1.web.xml: dispatcherServlet / 2.controller层方法 ...

  6. #千锋逆战班,ssf# 在千锋“逆战”学习第 25天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油

    [添加链接描述]java学习第五周集合知识总结.思维导图总结(https://www.processon.com/view/link/5e3e96b4e4b05c26bea2a78b?pw=527b)

  7. #千锋逆战班,拼搏永向前#

    在千峰"逆战"学习第十一天 如果有天我们湮没在人潮之中,庸碌一生,那是因为我们没有努力要活得丰盛 今天我学习了一下内容: 1.什么是JSP 2.JSP的语法 3.JSP的指令 4. ...

  8. 千锋逆战班,css注册案例

    千锋学习的第四十八天, 不积跬步无以至千里,不积小流无以成江河: 注册案例代码: <!DOCTYPE html> <html><head><meta char ...

  9. 千锋逆战班,网络编程

    在千锋学习的第33天 努力努力在努力,坚持坚持再坚持!!!加油 今天我学习了网络的划分层次,以及其中的TCP和IP协议,学习了IntAddress类和ServerScoket和Scoket 1.填空: ...

最新文章

  1. 在Python源中使用UTF-8编码[重复]
  2. 基于mvc三层架构和ajax技术实现最简单的文件上传
  3. Spring学习进阶 (三) Spring AOP
  4. extern C的主要作用简单解释
  5. Hadoop的学习前奏(一)——在Linux上安装与配置Hadoop
  6. tf dense layer两种创建方式的对比和numpy实现
  7. Android Studio增加assets目录、raw目录
  8. 放两个关于角色与权限的文章供自己参考
  9. Maya中英文对照表(四)
  10. matlab为uigetfile设置默认打开地址(打开路径)
  11. Gitblit安装遇到的一些问题
  12. 【程序员(媛)国人之光】知(美)识(色)贩卖贴】非标题党】
  13. java会员消费管理系统源码_基于jsp的会员消费商场vip管理系统-JavaEE实现会员消费商场vip管理系统 - java项目源码...
  14. 慢下来,等一等自己的灵魂
  15. Android Studio 问题:improperly specified vm option
  16. 使用新版Mendeley自动插入参考文献,并修改得到GB/T 7714-2005格式
  17. 微信公众帐号开发教程第2篇-开发模式启用及接口配置
  18. 用halcon提取衣服徽章
  19. rmarkdown入门
  20. Go C画图 CSP-J CSP-S 信息学奥赛 2023.01.10 测试题

热门文章

  1. 简单了解APP黑暗模式
  2. 应届生年薪30万,把员工宠上天?测试员在快手工作究竟是什么样的体验?
  3. 【MATLAB库函数系列】resample(重采样函数)的C语言实现【姊妹篇2纯C语言实现】
  4. 深度:从U16整队出国培训看鲁能海外青训全面升级
  5. 锐捷Linux上不了外网,校园网锐捷通过认证 但不能上网 求助!!
  6. 西门子PLC1200学习之硬件接线
  7. 读书笔记--Java虚拟机垃圾收集算法
  8. 小括号教学设计导入_《认识小括号》教学设计.doc
  9. 【腾讯TMQ】漫步VR——Unity语音聊天室开发小结
  10. 金融业移动管理驾驶舱产品功能介绍