案例1

需求:具体要求如下:学生练习

1.定义一个学生类Student,包含三个属性姓名、年龄、性别,
私有成员变量,生成无参,有参构造方法,生成get/set方法并重写toString()方法。
2.创建三个学生对象存入ArrayList集合中。
3. 遍历集合遍历输出。(输出格式如:姓名:张三, 年龄:23, 性别:男)
4. 求出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。

public class TestDemo {public static void main(String[] args) {//2.创建三个学生对象存入ArrayList集合中。ArrayList<Student> studentArrayList = new ArrayList<Student>();studentArrayList.add(new Student("jack", 18, '男'));studentArrayList.add(new Student("rose", 16, '女'));studentArrayList.add(new Student("tom", 22, '男'));//3.遍历集合遍历输出for (Student s : studentArrayList) {System.out.println(s);}//4.求出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。//找出年龄最大的那个学生int index = 0;int max = studentArrayList.get(0).getAge();for (int i = 1; i < studentArrayList.size();i++) {Student student = studentArrayList.get(i);if (student.getAge() > max) {max = student.getAge();index = i;}}//循环结束后,index就是年龄最大的学生索引studentArrayList.get(index).setName("小猪佩奇");//遍历for (Student s : studentArrayList) {System.out.println(s);}}
}

案例2:

需求:具体要求如下:学生练习
1.定义一个手机抽象类Phone,包含属性:名称,价格,颜色,品牌,私有成员变量,生成无参,有参构造方法,生成get/set方法并重写toString()方法。
2.定义小米手机类MiPhone继承Phone类,生成无参,有参构造方法
3.定义华为手机类HWPhone继承Phone类,生成无参,有参构造方法
4.定义一个ArrayList集合,泛型使用MiPhone
5.创建5个MiPhone对象,存储到ArrayList集合中
6.定义一个ArrayList集合,泛型使用HWPhone
7.创建5个HWPhone对象,存储到ArrayList集合中
9.定义一个方法,参数类型使用ArrayList集合,泛型要只能接收Phone和其子类
10.在方法中对传递进来的集合使用增强迭代器或者增强for遍历,打印每个手机的属性。
~
创建一个Phone手机类:

public abstract class Phone {private String name;private int price;private String color;private String brand;public Phone() {}public Phone(String name, int price, String color, String brand) {this.name = name;this.price = price;this.color = color;this.brand = brand;}@Overridepublic String toString() {return "Phone{" +"name='" + name + '\'' +", price=" + price +", color='" + color + '\'' +", brand='" + brand + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}
}

创建一个小米手机类MiPhone:

public class MiPhone extends Phone {//无参+全参public MiPhone(String name, int price, String color, String brand) {super(name, price, color, brand);}public MiPhone() {}
}

创建一个华为手机类HwPhone:

public class HWPhone extends Phone {public HWPhone() {}public HWPhone(String name, int price, String color, String brand) {super(name, price, color, brand);}
}

创建一个测试类

import java.util.ArrayList;public class TestDemo {public static void main(String[] args) {//1.创建小米集合ArrayList<MiPhone> miPhones = new ArrayList<MiPhone>();miPhones.add(new MiPhone("小米10",888,"土豪金","M"));miPhones.add(new MiPhone("小米11",999,"黑色","M"));miPhones.add(new MiPhone("小米12",999,"土豪黄","M"));miPhones.add(new MiPhone("小米13",999,"白色","M"));miPhones.add(new MiPhone("小米15",1999,"土豪白","M"));//2.创建华为集合ArrayList<HWPhone> hwPhones = new ArrayList<HWPhone>();hwPhones.add(new HWPhone("mate6",3999,"土豪金1","HW"));hwPhones.add(new HWPhone("mate7",4999,"土豪金2","HW"));hwPhones.add(new HWPhone("mate8",5999,"土豪金3","HW"));hwPhones.add(new HWPhone("mate9",6999,"土豪金4","HW"));hwPhones.add(new HWPhone("mate10",7999,"土豪金5","HW"));//3.调用方法print(miPhones);print(hwPhones);}public static void print(ArrayList<? extends Phone> phones) {for (Phone phone : phones) {System.out.println(phone);}}
}

案例3

需求:给定以下代码,请定义方法listTest()统计集合中指定元素出现的次数,
如"a": 2,“b”: 2,“c” :1, “xxx”:0。
Collection list = new ArrayList<>();
list.add(“a”);
list.add(“a”);
list.add(“b”);
list.add(“b”);
list.add(“c”);
System.out.println(“a:”+listTest(list, “a”));
System.out.println(“b:”+listTest(list, “b”));
System.out.println(“c:”+listTest(list, “c”));
System.out.println(“xxx:”+listTest(list, “xxx”));

import java.util.ArrayList;
import java.util.Collection;
public class Demo01 {public static void main(String[] args) {Collection<String> list = new ArrayList<>();list.add("a");list.add("a");list.add("b");list.add("b");list.add("c");System.out.println("a:"+ listTest(list,"a"));System.out.println("b:"+listTest(list, "b"));System.out.println("c:"+listTest(list, "c"));System.out.println("xxx:"+listTest(list, "xxx"));}private static int listTest(Collection<String> list,String s) {int count = 0;while(list.contains(s)){list.remove(s);count++;}return count;}
}

案例4

需求:把数组转换为集合
定义一个方法,要求此方法把int数组转成存有相同元素的集合(集合里面的元素是Integer),并返回。

import java.util.ArrayList;public class Demo02 {public static ArrayList<Integer> list= new ArrayList<>();public static void main(String[] args) {int[] arr = {1,2,3,4,5,6,7,8,9};priva(arr);for (Integer integer : list) {System.out.println(integer);}}public static void priva(int[] arr){for (int i = 0; i < arr.length; i++) {list.add(arr[i]);}}
}

案例5

需求:集合转数组
定义一个集合,并把集合(集合里面的元素是Integer)转成存有相同元素的数组,并将结果输出在控制台。
(可以使用Object[]数组类型接收转换的数组)

import java.util.ArrayList;public class Demo03 {public static void main(String[] args) {ArrayList<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);list.add(7);Object[] arr = new Object[7];for (int i = 0; i < list.size(); i++) {arr[i] = list.get(i);}for (Object o : arr) {System.out.println(o);}}
}

案例6

需求:contains()方法使用
定义一个方法listTest(ArrayList al, String s),要求使用contains()方法
判断al集合里面是否包含s,包含返回true, 不包含返回false。

import java.util.ArrayList;public class Demo04 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("1");list.add("1");list.add("2");list.add("s");listTest(list,list.get(0));}public static void listTest(ArrayList<String> a1,String a){System.out.println(a1.contains("s"));}
}

案例7

需求:定义一个方法listTest(ArrayList al, Integer s),要求返回s在al里面第一次出现的索引,如果s没出现过返回-1。

import java.util.ArrayList;public class Demo05 {public static void main(String[] args) {ArrayList<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);listTest(list,1);}public static void listTest(ArrayList<Integer> a1, Integer s){int index = -1;s = 5;for (int i = 0; i < a1.size(); i++) {if(a1.contains(s)){index = i;}}System.out.println(index);}
}

案例8

需求:产生10个1-100的随机数,并放到一个数组中,把数组中大于等于10的数字放到一个list集合中,并打印到控制台。

import java.util.ArrayList;
import java.util.Random;
public class Demo06 {public static Random random = new Random();public static ArrayList<Integer> list = new ArrayList<>();public static void main(String[] args) {int[] arr = new int[10];for (int i = 0; i < 10; i++) {int i1 = random.nextInt(100) + 1;arr[i] = i1;if(arr[i] >= 10){list.add(arr[i]);}}for (Integer integer : list) {System.out.print(integer + " ");}}
}

案例9

需求:已知数组存放一批QQ号码,QQ号码最长为11位,最短为5位
String[] strs = {“12345”,“67891”,“12347809933”,“98765432102”,“67891”,“12347809933”}。
将该数组里面的所有qq号都存放在LinkedList中,将list中重复元素删除,
将list中所有元素分别用迭代器和增强for循环打印出来。

import java.util.Iterator;
import java.util.LinkedList;
public class Demo08 {public static void main(String[] args) {String[] strs = {"12345","67891","12347809933","98765432102","67891","12347809933"};LinkedList<String> list = new LinkedList<>();for (int i = 0; i < strs.length; i++) {list.addLast(strs[i]);}for (int i = 0; i < list.size(); i++) {for (int j = i + 1; j < list.size(); j++) {if(list.get(i).contains(list.get(j))){list.remove(i);j--;}}}Iterator it = list.iterator();while(it.hasNext()){String s = (String) it.next();System.out.println(s);}System.out.println("========");for (String z : list) {System.out.println(z);}}
}

案例10

需求:请定义一个Collection类型的集合,存储以下分数信息:
88.5,39.2,77.1,56.8,89.0,99.0,59.5
请编程实现以下功能:
使用增强for遍历所有元素,并打印
使用增强for遍历所有元素,打印不及格的分数;
使用增强for遍历所有元素,计算不及格的分数的数量,和平均分,并打印计算结果。
使用增强for遍历所有元素,求出最高分,并打印;

import java.util.ArrayList;
import java.util.Collection;
public class Demo09 {public static void main(String[] args) {Collection<Double> coll = new ArrayList<>();coll.add(88.5);coll.add(39.2);coll.add(77.1);coll.add(56.8);coll.add(89.0);coll.add(99.0);coll.add(59.0);method1(coll);method2(coll);method3(coll);method4(coll);}public static void method1(Collection<Double> coll){System.out.print("分数:");for (Double aDouble : coll) {System.out.print(aDouble + " ");}System.out.println(" ");}public static void method2(Collection<Double> coll){System.out.print("不及格:");for (Double aDouble : coll) {if(aDouble < 60){System.out.print(aDouble + " ");}}System.out.println(" ");}public static void method3(Collection<Double> coll){int sum = 0;int count = 0;System.out.print("不及格:");for (Double aDouble : coll) {if(aDouble < 60){System.out.print(aDouble + " ");sum += aDouble;count++;}}double avg = sum / count;System.out.println( "平均分" + avg + ";不及格的有:" + count + "人");}public static void method4(Collection<Double> coll){double max = 0;for (Double aDouble : coll) {if(max < aDouble){max = aDouble;}}System.out.println("最高分:" + max);}
}

案例11

需求:有以下类结构:
人员类(Person):
|–学生类(Student)
|–Java学生类(JavaStudent)
|–UI学生类(UIStudent)
|–教师类(Teacher)
|–Java教师类(JavaTeacher)
|–UI教师类(UITeacher)
要求:
请按上述要求定义类,并实现继承关系即可(不需要定义类成员)
请按以下格式和要求定义测试类和方法:

public class Test10{public static void main(String[] args){ArrayList<String> list1 = new ArrayList<>();ArrayList<Person> list2 = new ArrayList<>();ArrayList<Student> list3 = new ArrayList<>();ArrayList<JavaStudent> list4 = new ArrayList<>();ArrayList<UIStudent> list5 = new ArrayList<>();ArrayList<Teacher> list6 = new ArrayList<>();ArrayList<JavaTeacher> list7 = new ArrayList<>();ArrayList<UITeacher> list8 = new ArrayList<>();//请测试哪些集合可以调用print1()方法//请测试哪些集合可以调用print2()方法//请测试哪些集合可以调用print3()方法//请测试哪些集合可以调用print4()方法}//要求:参数可以接收任何泛型的ArrayList参数public static void print1(ArrayList<______________> list){}//要求:参数可以接收任何Person及其子类泛型的ArrayList参数public static void print2(ArrayList<______________> list){}//要求:参数可以接收任何Student及其子类泛型的ArrayList参数public static void print3(ArrayList<______________> list){}//要求:参数可以接收任何Java学员,及其父类泛型的ArrayList参数public static void print4(ArrayList<______________> list){}
}

建立Person类
建立Person的子类Student 学生类和Teacher老师类
建立Student的子类JavaStudent和UiStudent
建立Teacher的子类JavaTeacher和UiTeacher

public class Person {}
public class Student extends Person {}
public class Teacher extends Person {}
public class JavaStudent extends Student{}
public class UIStudent extends Student {}
public class JavaTeacher extends Teacher {}
public class UITeacher extends Teacher {}

建立一个测试类TestDemo

import java.util.ArrayList;public class TestDemo{public static void main(String[] args){ArrayList<String> list1 = new ArrayList<>();ArrayList<Person> list2 = new ArrayList<>();ArrayList<Student> list3 = new ArrayList<>();ArrayList<JavaStudent> list4 = new ArrayList<>();ArrayList<UIStudent> list5 = new ArrayList<>();ArrayList<Teacher> list6 = new ArrayList<>();ArrayList<JavaTeacher> list7 = new ArrayList<>();ArrayList<UITeacher> list8 = new ArrayList<>();//请测试哪些集合可以调用print1()方法//请测试哪些集合可以调用print2()方法//请测试哪些集合可以调用print3()方法//请测试哪些集合可以调用print4()方法}//要求:参数可以接收任何泛型的ArrayList参数public static void print1(ArrayList<? extends Object> list){}//要求:参数可以接收任何Person及其子类泛型的ArrayList参数public static void print2(ArrayList<? extends Person> list){}//要求:参数可以接收任何Student及其子类泛型的ArrayList参数public static void print3(ArrayList<? extends Student> list){}//要求:参数可以接收任何Java学员,及其父类泛型的ArrayList参数public static void print4(ArrayList<? super JavaStudent> list){}
}

自己写的有什么错误请指出,我好早早修正。

Java Collection集合 --迭代器 -- 泛型 --List接口案例相关推荐

  1. 2021-06-19复习java Collection集合 Iterator接口_迭代器 增强for循环 泛型

    2021-06-19复习java Collection集合 Iterator接口_迭代器 增强for循环 泛型 Collection集合 java.util.coLlection接口 所有单列集合的最 ...

  2. Java集合之Collection集合、泛型 【集合综合案例:赌神、赌侠、赌神斗地主】

    第一章. Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. ...

  3. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器...

    集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                  ...

  4. 【Java】Collection集合和泛型

    学习目标:会存取,掌握特性 学习方式:学习顶层接口/抽象类的共性方法,使用底层的子类创建对象使用 1 集合框架 集合类的继承体系: Collection接口: ·············1) List ...

  5. 小东吖 之 java Collection集合和迭代器

    一.Collection集合 数组: 存储同一种数据类型的集合容器. 数组的特点: 1. 只能存储相同数据类型的数据 2. 一旦给定了长度,数组长度被固定了,不能改变 3. 数组中的元素与元素之间的内 ...

  6. plsql 循环存储过程返回数据集合_Java基础(十五)——Collection集合、泛型 - 寒江雨

    Collection集合 集合概述 集合:集合是Java中提供的一种容器,可以用来存储多个数据 数组的长度是固定的,集合的长度是可变的 数组中存储的是同一种数据类型的元素,可以存储基本数据类型也可以存 ...

  7. Java Collection集合的三种遍历方式

    文章目录 Collection遍历方式 迭代器遍历 foreach遍历 Lambda遍历 Collection遍历方式 Collection集合遍历的方式有三种: 迭代器 foreach/增强for循 ...

  8. Day 4:集合——迭代器与List接口

    Collection-迭代方法 1.toArray()  返回Object类型数据,接收也需要Object对象! Object[] toArray(); Collection c = new Arra ...

  9. Java——Collection集合

    1.集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? ...

最新文章

  1. Java实现markdown转html,并且生成TOC目录
  2. @老板:别开视频会议了,效率低没人care,斯坦福、微软都可以作证
  3. JQuery Attributes 方法说明
  4. 3分钟搞定静态出接口
  5. helloworld:一个完整的WCF案例
  6. 2017(深圳) .NET技术分享交流会 第二期,将有网络直播
  7. 霍纳法树形流图中处理机p个数_2009系统结构试卷答案
  8. 测试两个主机之间的连通性_借助网络测试神器极速解决网络故障
  9. 重磅!云+X 案例征集正式启动啦!
  10. Thread.sleep() / Object.wait() / Condition.await() / LockSupport.park() / LockSupport.unpark() 区别
  11. Ubuntu 19.10 停止支持 32 位的 x86 架构
  12. 【XNA4.0】动画
  13. 大数据分析体系由哪些层级构成
  14. 洛谷 P1595 信封问题
  15. Visual Studio + VAssistX常用快捷键收藏
  16. 微信小程序毕业设计 就餐预约点餐小程序毕业设计
  17. flutter混编ios打包生成ipa文件
  18. 正式版苹果雪豹操作系统光盘镜像
  19. linux下kegg注释软件,KEGG pathway注释过程
  20. 海淘也疯狂 跨境电商网站8月监测报告

热门文章

  1. 【机器学习】神经网络-激活函数-面面观(Activation Function)
  2. 使用用户行为实体分析和数据可视化的异常检测
  3. 六角形的绘制。利用turtle库绘制一个六角形。
  4. 【推荐】数字化转型和数据治理资料合集124篇
  5. idea设置统一编码风格
  6. 2017-2018网络攻防技术第八周作业
  7. C-V2X八大误区澄清和发展辩思
  8. 【日常问题】记录一次UAT环境消息队列阻塞问题
  9. C++ 实现matlab中值滤波函数medfilt2
  10. 2020年图机器学习的最新趋势