Java-集合
来源:互联网 发布:什么是遗传算法 编辑:程序博客网 时间:2024/06/03 22:50
对象数组
对象数组概述
A:基本类型的数组:存储的元素为基本类型
int[] arr={1,2,3,4}
B:对象数组:存储的元素为引用类型
Student[] stus=new Student[3];
Student代表一个自定义类
Stus数组中stus[0],stus[1],stus[2]的元素数据类型为Student
创建一个学生数组,存储三个学生对象并遍历
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; }}
public class StudentDemo { public static void main(String[] args) { //创建学生数组 Student[] students = new Student[3]; //创建学生对象 Student s1 = new Student("曹操",40); Student s2 = new Student("刘备",35); Student s3 = new Student("孙权",30); //把学生对象作为元素赋值给学生数组 students[0] = s1; students[1] = s2; students[2] = s3; //遍历学生数组 for(int x=0; x<students.length; x++) { Student s = students[x]; //System.out.println(s); System.out.println(s.getName()+"---"+s.getAge()); } }}
对象数组的内存图
集合类值ArrayList
数组与集合的区别
数组的长度是固定的, 集合的长度是不固定的。
ArrayList添加新元素
构造方法:
ArrayList()
添加元素:
public boolean add(E e):添加元素
public void add(int index,E element):在指定的索引处添加一个元素
ArrayList删改查方法
A:获取元素
public E get(int index):返回指定索引处的元素
B:集合长度
public int size():返回集合中的元素的个数
C:删除元素
public boolean remove(Object o):删除指定的元素,返回删除是否成功
public E remove(int index):删除指定索引处的元素,返回被删除的元素
D:修改元素
public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
ArrayList遍历
public class ArrayListDemo3 { public static void main(String[] args) { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //添加元素 array.add("hello"); array.add("world"); array.add("java"); //遍历集合 for(int x=0; x<array.size(); x++) { String s = array.get(x); System.out.println(s); } }}
ArrayList存储字符串并遍历
import java.util.ArrayList;public class ArrayListTest { public static void main(String[] args) { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //添加字符串元素 array.add("向问天"); array.add("刘正风"); array.add("左冷禅"); array.add("风清扬"); //遍历集合 for(int x=0; x<array.size(); x++) { String s = array.get(x); System.out.println(s); } }}
ArrayList练习之获取满足要求的元素
给定一个字符串数组:{“张三丰”,“宋远桥”,“张无忌”,“殷梨亭”“张翠山”,“莫声谷”},将数组中的元素添加到集合中,并把所有姓张的人员打印到控制台上
import java.util.ArrayList;public class ArrayListTest2 { public static void main(String[] args) { //定义字符串数组 String[] strArray = {"张三丰","宋远桥","张无忌","殷梨亭","张翠山","莫声谷"}; //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //遍历字符串数组,获取到每一个字符串元素 for(int x=0; x<strArray.length; x++) { //把获取到的字符串元素添加到集合 array.add(strArray[x]); } //遍历集合 for(int x=0; x<array.size(); x++) { String s = array.get(x); //要判断每一个字符串元素是否以"张"开头,如果是,就输出在控制台 if(s.startsWith("张")) { System.out.println(s); } } }}
ArrayList练习之键盘录入数据存储并遍历
创建一个Student类包含姓名和年龄属性
创建一个ArrayList集合
向集合中添加三个Student对象Student对象中姓名和年龄的数据均来自与键盘录入
最终遍历这个集合,取出Student对象以及里面属性的值
public class Student { private String name; private String age; public Student() { } public Student(String name, String age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; }}
import java.util.ArrayList;import java.util.Scanner;public class StudentDemo { public static void main(String[] args) { //创建集合对象 ArrayList<Student> array = new ArrayList<Student>(); /* //键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Scanner sc = new Scanner(System.in); System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生年龄:"); String age = sc.nextLine(); Student s = new Student(); s.setName(name); s.setAge(age); //把学生对象作为元素存储到集合中 array.add(s); */ //为了提高代码的复用性,我把键盘录入数据给学生对象,并存储到集合中的动作用一个方法来实现 //调用方法 addStudent(array); addStudent(array); addStudent(array); //遍历集合 for(int x=0; x<array.size(); x++) { Student s = array.get(x); System.out.println(s.getName()+"---"+s.getAge()); } } public static void addStudent(ArrayList<Student> array) { //键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 Scanner sc = new Scanner(System.in); System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生年龄:"); String age = sc.nextLine(); Student s = new Student(); s.setName(name); s.setAge(age); //把学生对象作为元素存储到集合中 array.add(s); }}
学生管理系统案例
创建学生类
public class Student { //学号 private String id; //姓名 private String name; //年龄 private String age; //居住地 private String address; public Student() { } public Student(String id, String name, String age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
学生系统管理代码的实现
import java.util.ArrayList;import java.util.Scanner;/* * 这是我的学生管理系统的主类 * * 步骤如下: * A:定义学生类 * B:学生管理系统的主界面的代码编写 * C:学生管理系统的查看所有学生的代码编写 * D:学生管理系统的添加学生的代码编写 * E:学生管理系统的删除学生的代码编写 * F:学生管理系统的修改学生的代码编写 */public class StudentManagerTest { public static void main(String[] args) { // 创建集合对象,用于存储学生数据 ArrayList<Student> array = new ArrayList<Student>(); // 为了让程序能够回到这里来,我们使用循环 while (true) { // 这是学生管理系统的主界面 System.out.println("--------欢迎来到学生管理系统--------"); System.out.println("1 查看所有学生"); System.out.println("2 添加学生"); System.out.println("3 删除学生"); System.out.println("4 修改学生"); System.out.println("5 退出"); System.out.println("请输入你的选择:"); // 创建键盘录入对象 Scanner sc = new Scanner(System.in); String choiceString = sc.nextLine(); // 用switch语句实现选择 switch (choiceString) { case "1": // 查看所有学生 break; case "2": // 添加学生 break; case "3": // 删除学生 break; case "4": // 修改学生 break; case "5": // 退出 // System.out.println("谢谢你的使用"); // break; default: System.out.println("谢谢你的使用"); System.exit(0); // JVM退出 break; } } }}//查看所有学生 public static void findAllStudent(ArrayList<Student> array) { //首先来判断集合中是否有数据,如果没有数据,就给出提示,并让该方法不继续往下执行 if(array.size() == 0) { System.out.println("不好意思,目前没有学生信息可供查询,请回去重新选择你的操作"); return; } //\t 其实就是一个tab键的位置 System.out.println("学号\t\t姓名\t年龄\t居住地"); for(int x=0; x<array.size(); x++) { Student s = array.get(x); System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress()); } }}//添加学生 public static void addStudent(ArrayList<Student> array) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); //为了让id能够被访问到,我们就把id定义在了循环的外面 String id; //为了让代码能够回到这里,用循环 while(true) { System.out.println("请输入学生学号:"); //String id = sc.nextLine(); id = sc.nextLine(); //判断学号有没有被人占用 //定义标记 boolean flag = false; //遍历集合,得到每一个学生 for(int x=0; x<array.size(); x++) { Student s = array.get(x); //获取该学生的学号,和键盘录入的学号进行比较 if(s.getId().equals(id)) { flag = true; //说明学号被占用了 break; } } if(flag) { System.out.println("你输入的学号已经被占用,请重新输入"); }else { break; //结束循环 } } System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生年龄:"); String age = sc.nextLine(); System.out.println("请输入学生居住地:"); String address = sc.nextLine(); //创建学生对象 Student s = new Student(); s.setId(id); s.setName(name); s.setAge(age); s.setAddress(address); //把学生对象作为元素添加到集合 array.add(s); //给出提示 System.out.println("添加学生成功"); }}//删除学生 public static void deleteStudent(ArrayList<Student> array) { //删除学生的思路:键盘录入一个学号,到集合中去查找,看是否有学生使用的是该学号,如果有就删除该学生 //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生的学号:"); String id = sc.nextLine(); /* //遍历集合 for(int x=0; x<array.size(); x++) { //获取到每一个学生对象 Student s = array.get(x); //拿这个学生对象的学号和键盘录入的学号进行比较 if(s.getId().equals(id)) { array.remove(x); //根据索引删除 break; } } //给出提示 System.out.println("删除学生成功"); */ //我们必须给出学号不存在的时候的提示 //定义一个索引 int index = -1; //遍历集合 for(int x=0; x<array.size(); x++) { //获取到每一个学生对象 Student s = array.get(x); //拿这个学生对象的学号和键盘录入的学号进行比较 if(s.getId().equals(id)) { index = x; break; } } if(index == -1) { System.out.println("不好意思,你要删除的学号对应的学生信息不存在,请回去重新你的选择"); }else { array.remove(index); System.out.println("删除学生成功"); } }}//修改学生 public static void updateStudent(ArrayList<Student> array) { //修改学生的思路:键盘录入一个学号,到集合中去查找,看是否有学生使用的是该学号,如果有就修改该学生 //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生的学号:"); String id = sc.nextLine(); //定义一个索引 int index = -1; //遍历集合 for(int x=0; x<array.size(); x++) { //获取每一个学生对象 Student s = array.get(x); //拿学生对象的学号和键盘录入的学号进行比较 if(s.getId().equals(id)) { index = x; break; } } if(index == -1) { System.out.println("不好意思,你要修改的学号对应的学生信息不存在,请回去重新你的选择"); }else { System.out.println("请输入学生新姓名:"); String name = sc.nextLine(); System.out.println("请输入学生新年龄:"); String age = sc.nextLine(); System.out.println("请输入学生新居住地:"); String address = sc.nextLine(); //创建学生对象 Student s = new Student(); s.setId(id); s.setName(name); s.setAge(age); s.setAddress(address); //修改集合中的学生对象 array.set(index, s); //给出提示 System.out.println("修改学生成功"); } }}
- Java集合:集合框架
- java集合---set集合
- JAVA 集合 的 集合
- 【集合】Java集合对比
- JAVA集合-Map集合
- JAVA集合-Set集合
- JAVA集合-List集合
- java集合------Map集合
- Java集合----List集合
- Java集合----Set集合
- Java集合----Map集合
- JAVA集合
- JAVA集合
- Java集合
- JAVA集合
- Java集合
- Java集合
- java 集合
- 单调队列模板(poj2823)
- 斜率优化简单的模板(HDU3507)
- 模拟测试(vj4)
- 算法导论3.2练习题
- NYOJ236 贪心算法
- Java-集合
- 割点和桥模板
- org.springframework.dao.InvalidDataAccessApiUsageException:
- 凸包模板(codevs1298)(洛谷2742)
- NLP的两种工具的java版使用:复旦FudanNLP,中科院计算所ICTCLAS2013
- IBMappscan9 破解方法
- 次小生成树(LA5713)
- 最小生成树和倍增法求lca(Uva11354Bond)
- 1433: [ZJOI2009]假期的宿舍