集合的一些应用
先定义一个Student类
import java.util.ArrayList;
public class TestList1 {
public static void main(String[] args) {
//将zs zy cly yjq zfy 存储到集合中
//1.创建集合 对象(容器)
ArrayList strs = new ArrayList();
//2.往集合中添加元素(数据)
strs.add("zs");//0
strs.add("zy");//1
strs.add("cly");//2
strs.add("yjq");//3
strs.add("zfy");//4
strs.add("zfy");//5
strs.add(1,"qj");//像插入,往后移动。数量改变
strs.set(0,"lhh");//以新换旧,代替掉了,数量没变
//3.集合中的元素进行操作
System.out.println(strs.size());//获取集合中元素的个数
System.out.println(strs.get(1));//获取指定下标的元素
System.out.println(strs.get(2));//获取指定下标的元素
System.out.println(strs.contains("zs"));//判断指定的内容在集合中是否存在
//对集合进行历遍:对集合中的元素进行一一访问过程
//利用循环控制 集合的下标
for(int i=0;i<strs.size();i++){
System.out.println(strs.get(i));//通过get获取下标对应的数据
}
//将集合中的 数据 小写->大写
System.out.println("------------------");
for(int i=0;i<strs.size();i++){
String s=(String) strs.get(i);
System.out.println(s.toUpperCase());
}
}
}
在Student类进行其他操作
操作1:
import java.util.ArrayList;
public class TestList1 {
public static void main(String[] args) {
//将zs zy cly yjq zfy 存储到集合中
//1.创建集合 对象(容器)
ArrayList strs = new ArrayList();
//2.往集合中添加元素(数据)
strs.add("zs");//0
strs.add("zy");//1
strs.add("cly");//2
strs.add("yjq");//3
strs.add("zfy");//4
strs.add("zfy");//5
strs.add(1,"qj");//像插入,往后移动。数量改变
strs.set(0,"lhh");//以新换旧,代替掉了,数量没变
//3.集合中的元素进行操作
System.out.println(strs.size());//获取集合中元素的个数
System.out.println(strs.get(1));//获取指定下标的元素
System.out.println(strs.get(2));//获取指定下标的元素
System.out.println(strs.contains("zs"));//判断指定的内容在集合中是否存在
//对集合进行历遍:对集合中的元素进行一一访问过程
//利用循环控制 集合的下标
for(int i=0;i<strs.size();i++){
System.out.println(strs.get(i));//通过get获取下标对应的数据
}
//将集合中的 数据 小写->大写
System.out.println("------------------");
for(int i=0;i<strs.size();i++){
String s=(String) strs.get(i);
System.out.println(s.toUpperCase());
}
}
}
操作2:
import java.util.ArrayList;
public class TestList2 {
public static void main(String[] args) {
//泛型集合:强制约束集合中的数据类型一致
//ArrayList<String> ss = new ArrayList<String>();
ArrayList<String> ss = new ArrayList<>();
ss.add("zy");
ss.add("zs");
ss.add("zfy");
//ss.add(123);放别的东西了,不想要,不允许
for(int i=0;i< ss.size();i++){
System.out.println(ss.get(i));
}
System.out.println("-----------小写->大写----------");
for(int i=0;i< ss.size();i++){
String s =ss.get(i);
System.out.println(s.toUpperCase());
}
}
}
操作3:
import java.util.ArrayList;
public class TestList3{
public static void main(String[] args) {
//c创建多个学生对象进行存储管理
//ArrayList stus = new ArrayList();
ArrayList<Student> stus = new ArrayList<>();
Student s1 = new Student("赵艳",18,99.0);
Student s2 = new Student("小城",28,79.0);
Student s3 = new Student("小样",25,89.0);
stus.add(s1);
stus.add(s2);
stus.add(s3);
stus.add(new Student("大红",26,76.0));
for(int i=0;i< stus.size();i++){
Student s=stus.get(i);
System.out.println(s);
}
System.out.println("---------------forEach------------------");
for(Student s : stus){
System.out.println(s);
}
System.out.println("----------------计算集合中所有学生平均分数---------------");
double sum =0.0 ;//累加器
for(Student s :stus){
sum+=s.getScore();
}
System.out.println("平均成绩"+sum/stus.size());
System.out.println("-----------------打印输出 所有年龄大于20同时姓赵的同学信息--------------------");
for(Student s : stus){
//if(s.getName().startsWith("赵")){
// if(s.getName().indexOf("赵")){
if(s.getName().charAt(0) == '赵' && s.getAge()>20){
System.out.println(s);
}
}
}
}
——————————————————————————————————
定义一个Worker类
public class Worker {
private String name;
private int age;
private double salary;
public Worker() {
}
public Worker(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
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 double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Worker{" +
"name='" + name + '\'' +
", age=" + age +
", salary=" + salary +
'}';
}
}
在Worker类上进行其他操作
操作:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TestWorker {
public static void main(String[] args) {
List<Worker> ws = new ArrayList<>();
Worker w1 = new Worker("胡巴",48,1000.0);
ws.add(w1);
ws.add(new Worker("赵啦",25,20000.0));
ws.add(new Worker("刘天",19,30000.0));
ws.add(new Worker("刘胡胡",29,10000.0));
for(Worker w : ws){
System.out.println(w);
}
System.out.println("------平均工资:=-------");
double sum =0.0;//累加器
for (Worker w : ws){
sum+=w.getSalary();
}
System.out.println("平均工资:"+sum/ws.size());
System.out.println("-姓名包含\"胡\"的查询应正确-----------");
for (Worker w:ws){
if(w.getName().contains("胡")){
System.out.println(w);
}
}
System.out.println("(5)姓\"胡\"的查询应只韩慧以\"胡\"字开头的工人");
for(Worker w:ws){
if(w.getName().startsWith("胡")){
System.out.println(w);
}
}
System.out.println("-----------------------------");
Scanner sc = new Scanner(System.in);
System.out.println("输入一个员工的姓名");
String name = sc.next();
boolean found = false;//是否存在 此人
for(Worker w :ws){
if(w.getName().equals(name)){
System.out.println(w);
found =true;
}
}
if(!found) System.out.println("查无此人!!!!!!");
}
}
Set有关的应用
依旧是先定义一个Studebt类
import java.util.Objects;
public class Student {
private String name;
private Integer age;
private Double score;
public Student(String name, Integer age, Double score) {
this.name = name;
this.age = age;
this.score = score;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", score=" + score +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Student)) return false;
Student student = (Student) o;
return Objects.equals(getName(), student.getName()) && Objects.equals(getAge(), student.getAge()) && Objects.equals(getScore(), student.getScore());
}
@Override
public int hashCode() {
return Objects.hash(getName(), getAge(), getScore());
}
}
对此Student类进行操作
操作1:
import java.util.HashSet;
import java.util.Set;
public class TestSet1 {
public static void main(String[] args) {
//存储对各字符串对象
Set<String> s = new HashSet<>();
String s1 ="hello";
String s2 =new String("world");
String s3 =new String("java");
String s4 =new String("you");
String s5 =new String("you");
s.add(s1);
s.add(s2);
s.add(s3);
s.add(s4);
//s4和s5指向的是否为同一个对象?-不是,两个对象是否相等?--相同
System.out.println(s4==s5);//判断两个对象是否指向同一个对象? -false->不同的对象
System.out.println(s4.equals(s5));//判断两个对象的内容是否一致?--true ->内存一样
System.out.println("-------set:元素不允许");
for(String result :s){
System.out.println(result);
}
}
}
操作2:
import java.util.HashSet;
import java.util.Set;//在显示屏时,set是无序性的
public class TestSet2 {
public static void main(String[] args) {
Set<Student> stus= new HashSet<>();
Student s1=new Student("赵大",25,99.0);
Student s2=new Student("赵小",25,97.0);
Student s3=new Student("于琪",27,87.0);
Student s4=new Student("于琪",27,87.0);//按理来说,不能添加相同的,但是这时时可以显示的
stus.add(s1);
stus.add(s2);
stus.add(s3);
for(Student s : stus){
System.out.println(s);
}
}
}
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/aaaghvhg/article/details/169168795




