JAVA基础-集合框架练习—经典五题

24 篇文章 2 订阅
23 篇文章 0 订阅

1.如何将集合中的两个元素交换位置?

package File;

import java.util.ArrayList;
import java.util.List;

public class ChangeArraylistPosition {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        swap(list,1,3);
        System.out.println(list);
    }
    /*
    将集合中的两个元素交换位置;
    1.void
    2.List list,int index1,int index2
     */
    public static void swap(List<String>list,int index1,int index2){
        String temp = list.get(index1);     // a,定义一个临时变量,记住其中一个元素。
        list.set(index1,list.get(index2));  // b,用第一个位置存放第二个位置上的元素。
        list.set(index2,temp);              // c.用第二个位置存放临时变量记住的元素。
    }
}

运行结果:
在这里插入图片描述

2.在集合中存储多个Person对象,Person有姓名和年龄,找出年龄最大的那个人。

Person类:

package File;

public class Person {
    private  String name;
    private  int age;

    public Person() {
        super();
    }

    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 Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

集合类ChangeArraylistPosition:

package File;

import java.util.ArrayList;
import java.util.List;

public class OldPerson {

    public static void main(String[] args) {
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person("张三", 30));
        list.add(new Person("李四", 10));
        list.add(new Person("王五", 40));
        list.add(new Person("赵六", 20));
        list.add(new Person("海海", 60));
        list.add(new Person("妞妞", 38));
        System.out.println("年龄最大的是:"+getOldPerson(list));
    }
    /**
     * 获取集合中最老的人
     * 1.Person
     * 2.List<person> list
     */
    public static Person getOldPerson(List<Person> list) {
        Person old = list.get(0);                        //1.定义一个Person类型的变量,先记住第一个元素。
        for (int i = 1; i < list.size(); i++) {          //2.循环遍历集合。
            if (old.getAge() < list.get(i).getAge()) {   //3.用每一个元素和变量年龄,如果集合中的元素比变量记住的年龄大。
                old = list.get(i);                       //4.用变量记住这个年林较大的元素。
            }
        }
        return old;                                      //5.最后将这个年龄返回出去。
    }
}

运行结果:
在这里插入图片描述

3.把集合的元素反转

package File;

import java.util.ArrayList;
import java.util.List;

public class Rev {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        System.out.println(list);
        System.out.println("反转后:");
        revList(list);
        System.out.println(list);
    }
    /**
     * 将集合中的元素反转
     * 返回值无:void
     * list<E>
     */
    public static <E> void revList(List<E> list){
        for (int i = 0; i < list.size()/2; i++) {
            E temp  = list.get(i);
            list.set(i,list.get(list.size()-1-i));
            list.set(list.size()-1-i,temp);
        }
    }
}

运行结果:
在这里插入图片描述

4.获取字符串在集合中出现的次数。

package File;

import java.util.ArrayList;
import java.util.List;


public class Count {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("d");
        list.add("d");
        list.add("d");
        list.add("d");
        System.out.println("a出现的次数:"+frequency(list,"a"));
        System.out.println("b出现的次数:"+frequency(list,"b"));
        System.out.println("c出现的次数:"+frequency(list,"c"));
        System.out.println("d出现的次数:"+frequency(list,"d"));
        System.out.println("e出现的次数:"+frequency(list,"e"));
    }

    private static int frequency(List<String> list, String a) {
        int count = 0;                          //定义计数器,开始归0
        for (String string: list) {             //遍历集合
            if (a.equals(string)) {             //判断传入的字符串和已有的字符串是否相等
                count++;                        //如果相等计数器+1
            }
        }
        return count;                           //返回计数器。
    }
}

运行结果:
在这里插入图片描述

5.定义一个replaceAll方法,将传入的新值替换集合中的老值。

package File;

import java.util.ArrayList;
import java.util.List;

public class ReplaceAll {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("d");
        list.add("d");
        list.add("d");
        list.add("d");
        System.out.println("换前:" + list);
        replaceAll(list, "a", "z");
        System.out.println("替换后" + list);
    }
    /**
     * 提花集合中的元素
     * 返回值 void
     * 参数:List<String> list,String oldStr,String newStR</>
     */
    public static void replaceAll(List<String> list, String oldStr, String newStr) {
        for (int i = 0; i < list.size(); i++) {            //遍历集合。
            if (oldStr.equals(list.get(i))) {              //如果传入的老元素与集合中的元素相等。
                list.set(i, newStr);                        //就把这个元素换成新传入的元素。
            }
        }
    }
}

}

运行结果:
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值