集合基础

1 集合和数组以及StringBuilder的特点对比

  • 共同点 : 都是存储数据的容器,打印出来的不是地址值而是容器里面的内容
  • 不同点 :
长度 存储数据类型
数组 数组一旦被初始化,数组的长度固定不变 可以存储基本数据类型也可以存储引用数据类型
StringBuilder 长度可变 任意类型
集合 长度可变 只能存储引用数据类型,要想存储基本数据类型需要存储对应的包装类ArrayList

注意 : StringBuilder不管存储什么类型的数据,在容器中都是以字符串形式存在!!!

2 关于ArrayList集合

ArrayList :

  • 是一个长度可变的容器
  • :是一种特殊的数据类型,泛型,只能是引用数据类型
  • 泛型的作用:规范集合中存储元素的数据类型

使用方法 :

​ 在出现E的地方我们使用引用数据类型即可

​ 举例: ArrayList,ArrayList

3 ArrayList的构造方法和添加方法

方法名 说明
public ArrayList() 创建一个空的集合对象
public boolean add(E e) 将指定的元素追加到此集合的末尾
public void add(int index,E element) 向集合中的指定位置插入指定的元素

4 ArrayList集合常用方法

方法名 说明
public boolean remove(Object o) 删除指定的元素,返回删除是否成功
public E remove(int index) 删除指定索引处的元素,返回被删除的元素
public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
public E get (int index) 返回指定索引处的元素
public int size() 返回集合中的元素的个数

5 ArrayList 一些代码展示

5.1.1 案例需求

创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合

5.1.2 代码实现

import java.util.ArrayList;
public class ArrayTest {public static void main(String[] args) {// 创建集合对象ArrayList<String> list = new ArrayList<>();// 添加元素list.add("孔明");list.add("庞统");list.add("郭嘉");list.add("荀彧");list.add("陆逊");list.add("周瑜");// 遍历集合// System.out.println(list);// [孔明, 庞统, 郭嘉, 荀彧, 陆逊, 周瑜]
//        System.out.println(list.get(0));
//        System.out.println(list.get(1));
//        System.out.println(list.get(2));
//        System.out.println(list.get(3));
//        System.out.println(list.get(4));
//        System.out.println(list.get(5));// for循环拿到集合中每一个元素索引for (int i = 0; i < list.size(); i++) {// 根据索引获取每一个元素String s = list.get(i);System.out.println(s);}}
}

5.2.1 案例需求

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

5.2.2 代码实现

import java.util.ArrayList;
public class ArrayTest {public static void main(String[] args) {//    2 创建集合对象ArrayList<Student> list = new ArrayList<>();// {s1 , s2 , s3....}//    3 创建学生对象Student s1 = new Student("曹操", 50);Student s2 = new Student("曹昂", 30);Student s3 = new Student("曹丕", 29);Student s4 = new Student("曹植", 28);Student s5 = new Student("曹彰", 27);Student s6 = new Student("曹熊", 26);Student s7 = new Student("曹冲", 10);//    4 添加学生对象到集合中list.add(s1);list.add(s2);list.add(s3);list.add(s4);list.add(s5);list.add(s6);list.add(s7);//    5 遍历集合,采用通用遍历格式实现for (int i = 0; i < list.size(); i++) {// 根据索引获取每一个元素Student s = list.get(i);System.out.println(s.getName() + "---" + s.getAge());}}
}

5.3.1 案例需求

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
学生的姓名和年龄来自于键盘录入

5.3.2 代码实现

import java.util.ArrayList;
import java.util.Scanner;
public class ArrayTest {public static void main(String[] args) {// 2 创建集合对象ArrayList<Student> list = new ArrayList<>();Scanner sc = new Scanner(System.in);// 键盘录入学生对象所需要的数据 , 录入3个for (int i = 1; i <= 3; i++) {System.out.println("请输入第" + i + "学生的名字:");String name = sc.nextLine();System.out.println("请输入第" + i + "学生的年龄:");int age = sc.nextInt();sc.nextLine();// 抵消回车字符// 创建学生对象 , 学生的名字和年龄键盘录入而来Student s = new Student(name, age);// 把学生对象添加到集合中list.add(s);}// 遍历集合for (int i = 0; i < list.size(); i++) {// 根据索引获取集合中每一个元素Student s = list.get(i);System.out.println(s.getName() + "---" + s.getAge());}}
}

5.4.1 案例需求

创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串
删除所有的test字符串,删除后,将集合剩余元素打印在控制台

5.4.2 代码实现

import java.util.ArrayList;
public class ArrayTest {public static void main(String[] args) {// 1 创建集合对象ArrayList<String> list = new ArrayList<>();// 2 调用add方法,添加字符串list.add("test");list.add("张三");list.add("李四");list.add("test");list.add("test");// 遍历集合 , 拿到每一个元素做判断// [张三,李四,test]for (int i = 0; i < list.size(); i++) {// 根据索引获取元素值String s = list.get(i);if(s.equals("test")){list.remove(i);i--;}}for (int i = 0; i < list.size(); i++) {String s = list.get(i);System.out.println(s);}}
}

思路二:

import java.util.ArrayList;
public class ArrayTest {public static void main(String[] args) {// 1 创建集合对象ArrayList<String> list = new ArrayList<>();// 2 调用add方法,添加字符串list.add("test");list.add("张三");list.add("李四");list.add("test");list.add("test");for (int i = list.size() - 1; i >= 0; i--) {// 根据索引获取元素值String s = list.get(i);if (s.equals("test")) {list.remove(i);}}for (int i = 0; i < list.size(); i++) {String s = list.get(i);System.out.println(s);}}
}

5.5.1 案例需求

定义一个方法,方法接收一个集合对象(泛型为Student),方法内部将年龄低于18的学生对象找出
并存入新集合对象,方法返回新集合。

5.5.2 代码实现

/*学生类*/
public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
/*学生测试类*/
import java.util.ArrayList;
public class ArrayTest {public static void main(String[] args) {// 1 创建集合对象ArrayList<Student> list = new ArrayList<>();// 2 创建学生对象Student s1 = new Student("曹操", 50);Student s2 = new Student("曹昂", 30);Student s3 = new Student("曹丕", 29);Student s4 = new Student("曹植", 28);Student s5 = new Student("曹彰", 17);Student s6 = new Student("曹熊", 16);Student s7 = new Student("曹冲", 10);// 3 把学生对象添加到集合中list.add(s1);list.add(s2);list.add(s3);list.add(s4);list.add(s5);list.add(s6);list.add(s7);// 调用方法 , 接收方法的返回值ArrayList<Student> newList = getList(list);// 遍历方法的返回的新集合for (int i = 0; i < newList.size(); i++) {Student s = newList.get(i);System.out.println(s.getName() + "----" + s.getAge());}}// 方法的功能: 接收一个集合 , 把集合中年龄小于18岁的学生对象存储到新的集合中, 并返回public static ArrayList<Student> getList(ArrayList<Student> list) { // list = {s1 , s2 , s3}// 方法内部定义新集合,准备存储筛选出的学生对象 ArrayList<Student> newListArrayList<Student> newList = new ArrayList<>();// 遍历原集合,获取每一个学生对象for (int i = 0; i < list.size(); i++) {// 根据索引获取每一个元素Student s = list.get(i);// 通过学生对象调用getAge方法获取年龄,并判断年龄是否低于18if (s.getAge() < 18) {// 将年龄低于18的学生对象存入新集合newList.add(s);}}return newList;}
}

2021-09-02 集合基础知识相关推荐

  1. 深入浅出Pytorch:02 PyTorch基础知识

    深入浅出Pytorch 02 PyTorch基础知识 内容属性:深度学习(实践)专题 航路开辟者:李嘉骐.牛志康.刘洋.陈安东 领航员:叶志雄 航海士:李嘉骐.牛志康.刘洋.陈安东 开源内容:http ...

  2. javaweb(02) JavaScript基础知识

    javaweb(02): JavaScript基础知识 JavaScript简介 为什么出现JavaScript Javascript是什么 JavaScript和Java的关系? 就像卡巴斯基和巴基 ...

  3. 2021 版 Spring Boot 基础知识复习手册(2w字,建议收藏)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...

  4. linux视频教程百度网盘分享,Java集合基础知识总结(绝对经典

    2.JAVA集合可以存储和操作数目不固定的一组数据. 3.若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用. 注:使用相应的toArray()和Arr ...

  5. 黑马程序员——Java集合基础知识之Map

                                         android培训.java培训.期待与您交流!   Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每 ...

  6. java集合基础_java常用集合基础知识

    [纯出自个人笔记,如有错误,望改正,谢谢哈! 学习~] 一.Java集合 1.集合类:容器类 装对象的(不能存放基本数据类型,但是里面看到的其实是包装类型) java.util包 ArrayList底 ...

  7. Java集合基础知识总结

    一.数组Array和集合的区别 1.数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) 2.JAVA集合可以存储和操作数目不固定的一组数据. 3.若程序时不知道究竟需要多少对 ...

  8. 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)

    博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞

  9. java语言基础及集合基础大总结

    好好学java java知识分享/学习教程免费分享 关注 精彩内容 你所需要的java全套视频教程 你所需要的java电子图书 你所需要的大数据视频教程 你所需要的java练习项目 如 / 诗 近半个 ...

最新文章

  1. 【opencv】ubuntu14.04上编译opencv-4.0.1 + opencv_contrib-4.0.1
  2. Python函数参数学习
  3. SpringBoot @Async加在实现接口类的非接口方法上获取Bean异常
  4. Python random模块seed理解
  5. JS、javascript计算两个时间差
  6. python如何使用本地数据库_使用Python在虚拟机上怎么连接本地数据库
  7. Beginning Python chapter 2 Lists and Tuples:1 Indexing and slicing
  8. 如何使用 jdk帮助文档
  9. CSDN和谐了我总结的白鹿原情色大盘点
  10. yansongda/pay 支付遇到的坑
  11. python做数字识别_用python实现手写数字识别
  12. LeetCode 每日一题 781. 森林中的兔子
  13. FTP和FXP的区别
  14. mysql preparing状态_mysql stage preparing,help!!!
  15. 机器人瓦力 配乐_机器人瓦力中的插曲是什么?
  16. Silverlight书籍推荐阅读排行榜
  17. win10-Administrator账户停用怎么重新启用(亲测有效)
  18. 仿360一键清理实现(一)
  19. 转载 Linux内存管理(最透彻的一篇)
  20. RecyclerView万能全套大宝剑

热门文章

  1. python熊猫弹幕_GitHub - qingyuj/danmu: Python 弹幕包 A live danmu package for python
  2. 【零一原创】2020 CSP-J 复赛题解 400分攻略
  3. Objective-C分类 (category)和扩展(Extension)
  4. java代码生成_Java代码生成器CodeX4J介绍
  5. 这样的设计太妙了!K8S 神秘架构终于揭开面纱!
  6. IDC机房之水冷系统
  7. 入门win32——绘制图形
  8. 【AI达人创造营第二期】基于PaddleClas的新冠肺炎CT影像的分类
  9. Java课程设计—学生成绩管理系统(54号童欢)
  10. 圆满收官!2022 秋招总结与建议