第1

/*
 * 分析以下需求,并用代码实现:
 (1)生成10个1至100之间的随机整数(不能重复),存入一个List集合(可以先不适用泛型,泛型明天讲)
 (2)编写方法对List集合进行排序
 (2)然后利用迭代器遍历集合元素并输出
 (3)如:15 18 20 40 46 60 65 70 75 91
 */
public class Demo {

    public static void main(String[] args) {
        List list = getRandomNumList();
        System.out.println("排序前的集合元素为:");
        System.out.println(list);
        sort(list);
        System.out.println("排序后的集合元素为:");
        System.out.println(list);
    }

    //定义生成随机数并且装入集合容器的方法
    public static List getRandomNumList(){
        //1.创建集合容器对象
        List list = new ArrayList();

        //2.创建Random对象
        Random r = new Random();

        /*for(int i = 0;i <= 9;i++){
            int num = r.nextInt(100) + 1;

        }*/

        while(list.size() != 10){
            int num = r.nextInt(100) + 1;
            if(!list.contains(num)){
                list.add(num);
            }
        }

        return list;
    }

    //使用冒泡排序(升序)
    public static void sort(List list){

        for(int i = 0;i < list.size() - 1;i++){
            for(int j = 0;j < list.size() - 1 - i;j++){
                int num1 = (int)list.get(j);
                int num2 = (int)list.get(j + 1);

                if(num1 > num2){
                    int temp = num1;
                    num1 = (int)list.set(j, num2);
                    num2 = (int)list.set(j + 1, temp);
                }

            }
        }
    }
}



第2


2、
/*
 * 分析以下需求,并用代码实现:
    现有一个list集合如下,
        List alist = new ArrayList<>();
        alist.add("sa");
        alist.add("a");
        alist.add("def");
        alist.add("b");
        alist.add("你好");
    (1)利用迭代器遍历这个集合!
    (2)定义一个方法method1 , 删除集合中字符串"def" , 并打印集合
    (3)定义一个方法method2 , 将原集合中的元素"a"和"b"交换位置!  并打印集合
    //注释: 所有的方法都是针对原集合而言!
 */
public class Demo1 {

    public static void main(String[] args) {
        List alist = new ArrayList<>();
        alist.add("sa");
        alist.add("a");
        alist.add("def");
        alist.add("b");
        alist.add("你好");

        Iterator it = alist.iterator();

        while(it.hasNext()){
            Object obj = it.next();
            System.out.println(obj);
        }

        method1(alist);

        System.out.println(alist);

        method2(alist);
        System.out.println(alist);

    }

    public static void method1(List list){

        for (Iterator iterator = list.iterator(); iterator.hasNext();) {
            Object object = (Object) iterator.next();
            if("def".equals(object)){
                iterator.remove();
            }
        }

    }

    public static void method2(List list){

        int i1 = list.indexOf("a");
        int i2 = list.indexOf("b");

        list.set(i1, "b");
        list.set(i2, "a");

    }
}




第3

3、
/*
 * 分析以下需求,并用代码实现:
    (1)定义List集合,存入多个字符串
    (2)删除集合中包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串)
    (3)然后利用迭代器遍历集合元素并输出
        List<String> list = new ArrayList<String>();
        list.add("abce0fgh");
        list.add("ab5e0f8gh");
        list.add("000234ab5e0f8g9h");
        list.add("abc");
        list.add("def");
        list.add("gh9i");
 */
public class Demo2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("abce0fgh");
        list.add("ab5e0f8gh");
        list.add("000234ab5e0f8g9h");
        list.add("abc");
        list.add("def");
        list.add("gh9i");

        deleteNum2(list);

        System.out.println(list);
    }

    public static void deleteNum2(List<String> list){

        Iterator<String> it = list.iterator();

        while(it.hasNext()){
            String str = it.next();
            for(int i = 0;i <= 9;i++){
                if(str.contains(i + "")){
                    it.remove();
                    break;
                }

            }
        }
    }

    public static void deleteNum(List<String> list){
        String regex = ".*\\d.*";

        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String str = it.next();
            if(str.matches(regex)){
                it.remove();
            }
        }

    }
}



第4


/*
 * 1.分析以下需求,并用代码实现:
    (1)定义一个方法swap()传入集合和两个角标使集合中元素交换位置()
    (2)思路
        a.定义一个临时变量, 记住其中一个元素
        b.用第一个位置存放第二个位置上的元素
        c.用第二个位置存放临时变量记住的元素
 */
public class Demo {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.add("dd");
        list.add("ee");
        System.out.println(list);
        swap(list, 1, 3);
        System.out.println(list);

        System.out.println("---------");
        ArrayList<Integer> list1 = new ArrayList<Integer>();
        list1.add(111);
        list1.add(222);
        list1.add(333);
        list1.add(444);
        list1.add(555);
        System.out.println(list1);
        swap(list1, 1, 3);
        System.out.println(list1);


    }

    //定义一个方法用于交换集合中两个元素的值
    public static <T> void swap(List<T> list,int i,int j){
        T t = list.get(i);
        list.set(i, list.get(j));
        list.set(j, t);
    }

}



第5


/*
 * 分析以下需求,并用代码实现:
 (1)定义一个Person类型(属性私有、空参有参构造、set、get方法、toString方法、equals方法、hashCode方法),
 包含两个属性:姓名(String name)、年龄(int age)
 (2)List集合中存储多个Person对象,获取年龄最大的Person对象并打印信息
 (3)思路
 a.定义一个Person类型的变量, 先记住第一个元素
 b.循环遍历集合
 c.用每一个元素和变量比较年龄, 如果集合中的元素比变量记住的年龄大
 d.用变量记住这个年龄较大的元素
 e.返回变量记住的元素

 JavaBean
 */
public class Demo2 {
    public static void main(String[] args) {
        List<Person> list = new ArrayList<Person>();

        list.add(new Person("张三", 20));
        list.add(new Person("李四", 10));
        list.add(new Person("王五", 50));
        list.add(new Person("赵六", 40));
        list.add(new Person("田七", 20));

        System.out.println(getMaxAgePer(list));
    }

    public static Person getMaxAgePer(List<Person> pers){

        Person maxPer = pers.get(0);    //  假设集合第一个元素的年龄最大的

        for(Person per : pers){
            if(maxPer.getAge() < per.getAge()){
                maxPer = per;
            }
        }

        return maxPer;
    }
}



第6


/*分析以下需求,并用代码实现:
 (1)将集合中的元素反转
 (2)思路
 * a.定义循环, 循环size()/2次
 b.第一次交换第一个和最后一个, 第二次交换第二个和倒数第二个
 */
public class Demo3 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();

        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        list.add("ddd");
        list.add("eee");

        System.out.println("反转前的数据为:" + list);

        reverse(list);

        System.out.println("反转后的数据为:" + list);
    }

    private static void reverse(List<String> list) {

        for(int start = 0,end = list.size() - 1;start <= end;start++,end--){
            String str1 = list.get(start);
            String str2 = list.get(end);

            list.set(start, str2);
            list.set(end, str1);
        }
    }
}


第7


/*
 * 分析以下需求,并用代码实现:

    (2)定义方法统计集合中指定元素出现的次数,如"a" 3,"b" 2,"c" 1
 */
public class Demo4 {
    public static void main(String[] args) {
        List<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(frequency(list, "a"));   // 3
        System.out.println(frequency(list, "b"));   // 2
        System.out.println(frequency(list, "c"));   // 1
        System.out.println(frequency(list, "d"));   // 5
        System.out.println(frequency(list, "xxx")); // 0
    }

    private static int frequency(List<String> list, String str) {

        int index = 0;  //定义一个计数器

        Iterator<String> it = list.iterator();

        while(it.hasNext()){
            String next = it.next();
            if(str.equals(next)){
                index++;
            }
        }


        return index;
    }
}



第8


/*
 * 分析以下需求,并用代码实现:
 (1)定义一个replaceAll方法,用传入集合的新值new 去替换 集合中指定的老值old(list,old,new)
 */
public class Demo5 {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();

        list.add("a");
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");

        System.out.println("替换前为:" + list);

        replaceAll(list,"a","aaa");

        System.out.println("替换后为:" + list);

    }

    private static void replaceAll(List<String> list, String oldValue, String newValue) {
        //使用一般for循环来实现
        for(int i = 0;i < list.size();i++){
            String str = list.get(i);
            if(oldValue!=null && oldValue.equals(str)){
                list.set(i, newValue);
            }
        }
    }
}