List的几个典型应用

简介: List的几个典型应用

第一题

比特科技有若干个学生,(学生对象放在一个LIst当中),每个学生有一个姓名,班级和某次考试成绩的属性(double),某次考试结束后,每个学生都获得了一个考试成绩。遍历LIst集合,并把学生对象的属性打印出来

import java.util.ArrayList;
class Student {
    private String name;
    private String classes;
    private double score;
    public Student(String name, String classes, double score) {
        this.name = name;
        this.classes = classes;
        this.score = score;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", classes='" + classes + '\'' +
                ", score=" + score +
                '}';
    }
}
public class Main {
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("gaobo", "102", 18.3));
        students.add(new Student("gaobo1", "102", 128.3));
        students.add(new Student("gaobo1", "102", 138.3));
        System.out.println(students);
    }
}

分析代码可以知道,ArrayList中存放的是Student这个对象,所以每次添加的时候都要new一个新的学生对象。

第二题

有一个List当中存放的是整型数据,要求使用Collection.sort进行排序

import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> integers = new ArrayList<>();
        integers.add(22);
        integers.add(2);
        integers.add(33);
        Collections.sort(integers);
        System.out.println(integers);
    }
}

这题int型就放int对应的类,直接调用Collection方法下面的sort类就行了

第三题

删除第一个字符串当中出现的第二个字符串中的字符

String str1 = “welcome to bit”;

String str2 = “come”;

输出结果:

wl t bit

用String解决

import java.util.Scanner;
public class Main {
    public static String fun(String str1, String str2) {
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < str1.length(); i ++) {
            char ch = str1.charAt(i);
            if(! str2.contains(ch+"")) {
                sb.append(ch);
            }
        }
        return sb.toString();
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
        System.out.println(fun(str1, str2));
    }
}

用ArrayList解决

import java.util.ArrayList;
public class Main {
    public static void main(String[] args) {
        String str1 = "welcome to bit";
        String str2 = "come";
        ArrayList<Character> list = new ArrayList<>();
        for(int i = 0; i < str1.length(); i ++) {
            char ch = str1.charAt(i);
            if(! str2.contains(ch+"")) {
                list.add(ch);
            }
        }
        for(char ch : list) {
            System.out.print(ch);
        }
    }
}

第四题

打印一幅扑克牌

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
class Card {
    private String name;
    private int rank;
    public Card(String name, int rank) {
        this.name = name;
        this.rank = rank;
    }
    @Override
    public String toString() {
        return "[ " + this.name + " " + this.rank + " ]";
    }
}
public class Main {
    public static List<Card> buyCard() {
        String[] suits = {"♥", "♠", "♦", "♣"};
        ArrayList<Card> cards = new ArrayList<>();
        for(int i = 0; i < 4; i ++) {
            for(int j = 1; j <= 13; j ++) {
                cards.add(new Card(suits[i], j));
            }
        }
        return cards;
    }
    public static void swap(List<Card> cards, int i, int j) {
        Card tmp = cards.get(i);
        cards.set(i, cards.get(j));
        cards.set(j, tmp);
    }
    public static void buffCard(List<Card> cards) {
        int size = cards.size();
        for(int i = size - 1; i > 0; i --) {
            Random random = new Random();
            int ran = random.nextInt(i);
            swap(cards, i, ran);
        }
    }
    public static void main(String[] args) {
        List<Card> cards = buyCard();
        System.out.println("买牌" + cards);
        buffCard(cards);
        System.out.println("洗牌" + cards);
        ArrayList<List<Card>> hand = new ArrayList<>();
        ArrayList<Card> hand1 = new ArrayList<>();
        ArrayList<Card> hand2 = new ArrayList<>();
        ArrayList<Card> hand3 = new ArrayList<>();
        hand.add(hand1);
        hand.add(hand2);
        hand.add(hand3);
        for(int i = 0; i < 5; i ++) {
            for(int j = 0; j < 3; j ++) {
                hand.get(j).add(cards.remove(0));
            }
        }
        System.out.println("第一个人的牌:" + hand1);
        System.out.println("第二个人的牌:" + hand2);
        System.out.println("第三个人的牌:" + hand3);
        System.out.println("剩下的牌:" + cards);
    }
}

java常识

java中方法的重载

1.函数名必须相同。

2.返回类型不做要求。

3.参数列表不同(参数个数或者参数的返回类型)。

第一个条件和第二个条件必须同时满足

递归

1.要调用自身。

2.要有一个趋近于终止的条件。

3.推导出递归的公式。(重要)

就是把大问题化成小问题。

递归就是有递有归。

思考递归:横向思考,不要试图去走进递归的代码 展开

代码执行 纵向

for循环的打印

在java中新加一个打印数组的方法

foreach可以快捷出来,也可以手动打出来

import class Zy {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4};
        for(int a : arr) {
            System.out.println(a + " ");
        }
    }
}


相关文章
|
2月前
|
存储 编译器 C++
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
62 2
|
6月前
|
开发者 Kotlin
Kotlin中List的Lambda表达式应用与解析
Kotlin中List的Lambda表达式应用与解析
|
6月前
|
存储 设计模式 并行计算
CopyOnWriteArrayList:深入理解Java中的线程安全List原理和应用
CopyOnWriteArrayList:深入理解Java中的线程安全List原理和应用
|
7月前
|
存储 索引 Python
Python中的列表(List) 详解与高级应用
Python中的列表(List) 详解与高级应用
190 0
|
7月前
|
存储 算法 数据处理
Python中的列表(List) 类型详解与实战应用
Python中的列表(List) 类型详解与实战应用
130 0
Python应用专题 | 1:如何根据mask list提取目标list中元素
介绍Python在具体任务中使用:如何根据mask list提取目标list中元素
|
缓存 JavaScript 前端开发
列表渲染(List Rendering):构建动态Web应用的关键技术
在现代Web应用开发中,动态显示数据是至关重要的,而列表渲染是实现这一目标的关键技术之一。它允许开发者有效地渲染和管理动态生成的列表,如新闻文章、产品列表、评论等。在本博客中,我们将深入探讨列表渲染的概念、不同的列表渲染方法、性能优化以及如何利用列表渲染来构建具有动态性和响应性的Web应用。
201 0
|
Web App开发 弹性计算 安全
零基础入门Serverless:Todo List应用创建
通过Serverless架构创建一个TodoList案例
Python应用专题 | 21 :按照len长度过滤pandas中值为list类型的数据
pandas中对于值为list的数据,如果想要根据list的长度进行过滤,如何操作?