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
在使用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()方法添加一个数组,集合中显示的是数组当中的元素,数组当中有几个元素,就显示几个元素