Set:不包含重复元素
HashSet 不保证迭代顺序
TreeSet 集合中的元素按照自然顺序[或者指定的比较器]排序
import java.util.Iterator;
import java.util.TreeSet;
/** 做此题的关键是要知道TreeSet 是不包含重复元素,并将元素按照自然顺序排序的
* 指定一个字符串 int[] a = {6,4,1,3,2,4,2,5,9,1,3,7,8};
* 去掉数组中的重复数据,并排序,得到一个新数组
*/
public class Test {
public static void main(String[]args){
int a[]={6,4,1,3,2,4,2,5,9,1,3,7,8};
//创建一个TreeSet
TreeSet<Integer> set=new TreeSet<Integer>();
//利用循环来将a数组中的数据添加到TreeSet中
for(int i=0;i<a.length;i++){
set.add(a[i]);
}
//创建一个迭代器来输出TreeSet中的元素
Iterator<Integer> iter=set.iterator();
while(iter.hasNext()){
int s=iter.next();
System.out.println(s);
}
}
}
List 有序的,可以重复的
ArrayList 长度可变的数组
LinkedList 链表 可以当做栈,队列和双端队列使用
Stack 栈 后进先出 继承自Vector,基于数组的实现
Vector向量,长度可变的数组,主要用在多线程中
Random da=new Random();
rd.nextInt(int n);
返回一个伪随机数,它是取自此随机数生成器序列的、
在 0(包括)和指定值(不包括)之间均匀分布的 int 值
API方法中可查的。
/** * 给定一个数组String[] a = {"长沙","株洲","湘潭","益阳","岳阳","常德"}; 随机中数组中取出一个城市,不允许取到重复的数据,最多6次取完所有的城市 */ import java.util.ArrayList; import java.util.Iterator; import java.util.Random; public class Test1 { public static void main(String[]args){ String[] a={"长沙","株洲","湘潭","益阳","岳阳","常德"}; ArrayList<String> list=new ArrayList<String>(); //创建一个随机数 Random rd=new Random(); //通过循环将数据添加到ArraList中 for(int i=0;i<a.length;i++){ list.add(a[i]); } //通过循环移除数据,a.length就为输出的次数 for(int i=0;i<a.length;i++){ //通过取得随机下标,此题的关键是rd.nextInt(list.size()); //每移除一个数据,list.size的长度会发生变化 //楼主开始做的时候想成是rd.nextInt(a.length); //所以造成了越界 随机数方法的应用可见API文档 或者我的文章内容有提到 int index=rd.nextInt(list.size()); //将数据通过下标移除数据并将其输出 String s=list.remove(index); System.out.println(s); } } }
此题楼主做的时候并没有想到此方法,是根据老师说的方法来做的
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Set; /* * 给定一个字符串 String s="abbcccdddeeeefffffg"; * 统计字符串中每个字符出现的次数 */ /* * 解题关键:通过题目的要求我们要想到HashMap可以解决问题 * 懂得运用charAt的方法 * 通过contains判断在map中是否存在一个key为字符c * 每判断一次contains,存在就+1,在重新放回,直到判断完为止 * 熟练运用HashSet的遍历方法[键 值 对] */ public class Test2 { public static void main(String[]args){ String s="abbcccdddeeeefffffg"; //创建一个HashMap<字符,次数> HashMap<Character,Integer> map=new HashMap<Character,Integer>(); //依次取出字符串中的每一个字符 for(int i=0;i<s.length();i++){ char c=s.charAt(i); //判断map中是否有一个key为字符c if(map.containsKey(c)){ int v=map.get(c); v++; //重新放回 map.put(c, v); } else{ //不存在的话,就只出现了一次 map.put(c, 1); } } Set<Character> set=map.keySet(); //创建Set的迭代器 Iterator<Character> iter=set.iterator(); while(iter.hasNext()){ Character k=iter.next(); //通过键获得对应的值 int t=map.get(k); System.out.println(k+"的次数是:"+t); } } }
每一次的总结都会有收获,Collection 中的知识不光要了解透彻,而且要学会熟练运用。
相关推荐
在实际应用中,选择合适的集合类型取决于具体需求。例如,如果需要维护元素顺序且允许重复,应选择`List`;如果要求元素唯一,可以选择`Set`;对于键值对的需求,`Map`是最佳选择。 了解这些接口之间的差异对于编写...
从给定的文件内容中,我们可以提取出与标题“collection,list,set,map”相关的知识点,但是具体到这些数据结构的内容并没有在节选部分直接提及。不过,从描述和标签中的“源码 工具”可以推测,作者可能在讨论...
### Java集合Collection、List、Set、Map使用详解 #### 1. 集合框架概述 集合框架是Java编程语言中最基本且最重要的组成部分之一。它提供了处理数据集合的强大工具,这些工具不仅支持基本操作(如添加、删除和查找...
在实际应用中,选择合适的集合类非常重要。例如,如果需要维护元素的顺序,可以选择 List 接口的实现类 ArrayList 或 LinkedList。如果需要快速查找元素,可以选择 Set 接口的实现类 HashSet 或 LinkedHashSet。如果...
### Collection、Map、List、Set、...以上就是关于 `Collection`、`Map`、`List`、`Set` 和 `Iterator` 的详细解析,这些概念和类是 Java 编程中非常基础且重要的部分,掌握它们有助于更好地理解和使用 Java 集合框架。
通过上述分析可以看出,`List`和`Set`在Java程序设计中扮演着重要角色,它们各自具有不同的特性和应用场景。选择合适的容器类型对于提高程序效率和可维护性至关重要。在实际开发中,开发者应根据具体需求选择最适合...
`retainAll`是Java集合框架中`Collection`接口的一个方法,它的作用是保留当前集合中与指定集合交集的部分,即删除所有不在指定集合中的元素。这个方法在处理大量数据时,对于集合的筛选和优化非常有用。 1. **List...
在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。...在实际应用中,根据需求选择合适的集合类型,并结合排序、遍历、线程安全等知识点,能够更好地解决各种数据结构问题。
在深入研究Java集合框架,特别是List、Set和Queue的性能测试时,我们通常会关注它们在单线程环境中的表现。这些容器是Java编程中不可或缺的一部分,用于存储和管理对象。本章将探讨如何构建一个性能测试框架来比较...
无论是Collection、List、Set还是Map,每个接口都有其特定的应用场景和优缺点。选择合适的集合类型并熟练掌握其方法和实现原理,能让你的代码更加高效且易于维护。在实际编程中,应根据需求选择合适的数据结构,如...
Set接口提供了与Collection相同的方法,但不允许添加重复元素。 ##### 5.2 实现原理 常见的Set实现包括: - **HashSet**:基于HashMap实现,不保证元素的顺序。 - **TreeSet**:基于TreeMap实现,可以保证元素的...
Java集合Collection、List、Set、Map使用详解
"Java集合Collection、List、Set、Map使用详解" Java集合是Java编程语言中最基本也是最重要的一部分。能够正确地使用集合类和理解集合的实现原理对于Java程序的开发具有无比的好处。本文将详细解释Java集合的实现...
Java 集合框架的主要组件包括 Collection、List、Set、Map 等。 1.1 容器简介 容器是指可以存储对象的对象。 Java 集合框架中有多种类型的容器,每种容器都有其特点和用途。常见的容器有 Collection、List、Set、...
在实际应用中,经常需要处理多个对象的集合,并且对这些对象进行各种操作,如添加、删除和查找等。为了高效地处理这些操作,Java提供了强大的容器体系来支持不同的应用场景。 - **集合(Collection)**:用于存储不...
Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...
### Java集合排序及java集合类详解(Collection、...以上是对Java集合框架中的`Collection`、`List`、`Set`和`Map`的详细介绍,涵盖了它们的基本概念、常用方法、实现原理等方面,希望对理解和使用Java集合有所帮助。