Arraylist中添加元素

img


顺序输出,逆序输出,
输出出现次数最高的元素和次数
相同的元素只保留一个,输出
输出只出现一次的元素


import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.Map;  
  
public class Main {  
    public static void main(String[] args) {  
        ArrayList<Integer> list = new ArrayList<>();  
        list.add(1);  
        list.add(2);  
        list.add(3);  
        list.add(2);  
        list.add(4);  
        list.add(1);  
        list.add(5);  
  
        // 添加元素顺序输出  
        System.out.println("添加元素顺序输出:");  
        for (int num : list) {  
            System.out.print(num + " ");  
        }  
        System.out.println();  
  
        // 添加元素逆序输出  
        System.out.println("添加元素逆序输出:");  
        for (int num = list.size() - 1; num >= 0; num--) {  
            System.out.print(list.get(num) + " ");  
        }  
        System.out.println();  
  
        // 输出出现次数最高的元素和次数  
        Map<Integer, Integer> map = new HashMap<>();  
        for (int num : list) {  
            if (map.containsKey(num)) {  
                map.put(num, map.get(num) + 1);  
            } else {  
                map.put(num, 1);  
            }  
        }  
        System.out.println("出现次数最高的元素和次数:");  
        int maxCount = 0;  
        int maxNum = 0;  
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {  
            if (entry.getValue() > maxCount) {  
                maxCount = entry.getValue();  
                maxNum = entry.getKey();  
            }  
        }  
        System.out.println(maxNum + " " + maxCount);  
  
        // 相同的元素只保留一个  
        ArrayList<Integer> newList = new ArrayList<>();  
        for (int num : list) {  
            if (!newList.contains(num)) {  
                newList.add(num);  
            }  
        }  
        System.out.println("相同的元素只保留一个:");  
        for (int num : newList) {  
            System.out.print(num + " ");  
        }  
        System.out.println();  
  
        // 输出只出现一次的元素  
        Map<Integer, Integer> map2 = new HashMap<>();  
        for (int num : list) {  
            if (map2.containsKey(num)) {  
                map2.put(num, map2.get(num) + 1);  
            } else {  
                map2.put(num, 1);  
            }  
        }  
        System.out.println("只出现一次的元素:");  
        for (Map.Entry<Integer, Integer> entry : map2.entrySet()) {  
            if (entry.getValue() == 1) {  
                System.out.print(entry.getKey() + " ");  
            }  
        }  
        System.out.println();  
    }  
}

上述代码中,我们使用了Java中的ArrayList、HashMap等数据结构来实现对ArrayList中元素的添加顺序输出、逆序输出,输出出现次数最高的元素和次数,相同的元素只保留一个,输出只出现一次的元素等操作。


import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(3);
        list.add(1);
        list.add(0);
        list.add(4);

        // 顺序输出
        System.out.println("顺序输出:");
        for (Integer element : list) {
            System.out.print(element + " ");
        }
        System.out.println();

        // 逆序输出
        System.out.println("逆序输出:");
        Collections.reverse(list);
        for (Integer element : list) {
            System.out.print(element + " ");
        }
        System.out.println();

        // 输出出现次数最高的元素和次数
        System.out.println("出现次数最高的元素和次数:");
        HashMap<Integer, Integer> frequencyMap = new HashMap<>();
        for (Integer element : list) {
            frequencyMap.put(element, frequencyMap.getOrDefault(element, 0) + 1);
        }
        int maxFrequency = 0;
        int mostFrequentElement = 0;
        for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
            int frequency = entry.getValue();
            if (frequency > maxFrequency) {
                maxFrequency = frequency;
                mostFrequentElement = entry.getKey();
            }
        }
        System.out.println("元素: " + mostFrequentElement);
        System.out.println("出现次数: " + maxFrequency);

        // 去重输出
        System.out.println("去重输出:");
        ArrayList<Integer> distinctList = new ArrayList<>(frequencyMap.keySet());
        for (Integer element : distinctList) {
            System.out.print(element + " ");
        }
        System.out.println();

        // 只出现一次的元素输出
        System.out.println("只出现一次的元素输出:");
        for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
            if (entry.getValue() == 1) {
                System.out.print(entry.getKey() + " ");
            }
        }
        System.out.println();
    }
}

输出

顺序输出:
1 2 1 2 2 3 3 1 0 4 
逆序输出:
4 0 1 3 3 2 2 1 2 1 
出现次数最高的元素和次数:
元素: 2
出现次数: 3
去重输出:
0 1 2 3 4 
只出现一次的元素输出:
0 3 4 


  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/213829
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:ArrayList只允许依次添加元素的原因
  • 除此之外, 这篇博客: Arraylist集合方法总结中的 添加数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在使用arraylist集合前,必须先要对集合进行实例化,添加数据有三种方式。
    第一种:可以通过集合的构造函数添加一个数组(不局限于数组,只要是接口可以实现的都可以)
    第二种:通过Add()方法可以添加任何一个数据,添加数组或者类的时候只能算作一个元素
    第三种:通过AddRange()也可以添加数组,而且添加到集合当中是数组元素的个数,数组中有多少元素,就添加到集合当中多少个
    总结:构造函数或者addrange()方法都可以直接显示出数组的各个元素,add方法添加数组只能算作一个元素,显示System.Int[32]

                int[] nums = new int[] { 1, 4, 5, 7 };   //创建一个数组
                ArrayList al = new ArrayList(nums); //---用构造函数添加这个数组,集合中显示数组的所有元素
                al.Add(1);          //用add方法向数组中添加元素,int类型
                al.Add("老牛");     //用add方法向数组中添加元素,string类型
                al.Add(nums);       //通过add()方法添加一个数组,集合中只能算作一个元素,想要显示出数组当中所有的元素,要通过强制转换,然后for循环遍历出来
                al.AddRange(nums);  //通过AddRange()方法添加一个数组,集合中显示的是数组当中的元素,数组当中有几个元素,就显示几个元素
  • 您还可以看一下 银文杰老师的小白Java入门系列:入门第一课【你的第一个Java程序】课程中的 ArrayList集合演示小节, 巩固相关知识点