问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中的集合有几种

发布网友 发布时间:2022-03-29 01:32

我来回答

5个回答

懂视网 时间:2022-03-29 05:53

java有三种集合,包括Set、List和Map,它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。

  

  1、Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现接口来自定义排序方式。

  

  2、List中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,如通过list.get(i)方式来获得List集合中的元素。

  

  3、Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。

热心网友 时间:2022-03-29 03:01

集合类是放在java.util.*;这个包里。集合类存放的都是对象的引用,而非对象本身,为了说起来方便些,我们称集合中的对象就是指集合中对象的引用(reference)。引用的概念大家不会忘了吧,在前边我们讲数据类型时讲的。
集合类型主要有3种:set(集)、list(列表)、map(映射)和Queue(队列)。//队列为jdk5中的加上的

(1) Set

集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。我们知道数学上的集合也是Set这个,集合里面一定是没有重复的元素的。

(2)List

列表(List)的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的Set是不同的。它是链表嘛,一条链肯定有顺序这个顺序就不一定了。

(3)Map

映射(Map),这个在java里不是地图的意思,其实地图也是映射哈。它里面的东西是键-值对(key-value)出现的,键值对是什么呢?举个例子,比如我们查字典,用部首查字法。目录那个字就是键,这个字的解释就是值。键和值成对出现。这样说可以理解吧。这也是很常用的数据结构哦。

(4)Queue

在jdk5.0以前,通常的实现方式是使用java.util.List集合来模仿Queue。Queue的概念通过把对象添加(称为enqueuing的操作)到List的尾部(即Queue的后部)并通过从List的头部(即Queue的前部)提取对象而从 List中移除(称为dequeuing的操作)来模拟。你需要执行先进先出的动作时可以直接使用Queue接口就可以了。

这4个东西,有时候功能还不太完善,需要有些子类继承它的特性。Set的子接口有TreeSet,SortedSet,List的有ArrayList等,Map里有HashMap,HashTable等,Queue里面有BlockingQueue等。我们来看看例子吧:

实践: Set举例

import java.util.*;

public class SetExample {

public static void main(String[] args) {

Set set = new HashSet(); //HashSet是Set的子接口

set.add("one");

set.add("second");

set.add("3rd");

set.add(new Integer(4));

set.add(new Float( 5.0F ));

set.add("second");

set.add(new Integer(4));

System.out.println(set);

}}

List举例:

import java.util.*;

public class ListExample {

public static void main(String[] args) {

List list = new ArrayList();

list.add("one");

list.add("second");

list.add("3rd");

list.add(new Integer(4));

list.add(new Float( 5.0F ));

list.add("second");

list.add(new Integer(4));

System.out.println(list);

}}

Map举例

import java.util.Map;

import java.util.HashMap;

import java.util.Iterator;

import java.io.FileReader;

public class MapExample {

public static void main(String[] args) throws java.io.FileNotFoundException {

Map word_count_map = new HashMap();

FileReader reader = new FileReader(args[0]);

Iterator words = new WordStreamIterator(reader);

while ( words.hasNext() ) {

String word = (String) words.next();

String word_lowercase = word.toLowerCase();

Integer frequency = (Integer)word_count_map.get(word_lowercase);

if ( frequency == null ) {

frequency = new Integer(1);

} else {

int value = frequency.intValue();

frequency = new Integer(value + 1);}

word_count_map.put(word_lowercase, frequency);

}

System.out.println(word_count_map);

}}

Queue举例:

import java.io.IOException;

import java.io.PrintStream;

import java.util.LinkedList;

import java.util.Queue;

public class QueueTester {

public Queue<String> q; //发现了一个奇怪的语法,这个尖括号是泛型声明

public QueueTester() {q = new LinkedList<String>();}

public void testFIFO(PrintStream out) throws IOException {

q.add("First");

q.add("Second");

q.add("Third");

Object o;

while ((o = q.poll()) != null) {

out.println(o);}}

public static void main(String[] args) {

QueueTester tester = new QueueTester();

try { tester.testFIFO(System.out);

} catch (IOException e) {

e.printStackTrace(); } }}

热心网友 时间:2022-03-29 04:19

所有实现了Collection接口的,以及Map接口的都是java的集合,具体查看JavaAPI。

常用的集合类ArrayList, LinkedList, Stack, HashSet, HashMap,
还有一个遍历器Iterator。

---------Collection接口--------
java.util
接口 Collection<E>
所有超级接口:
Iterable<E>
所有已知子接口:
BeanContext, BeanContextServices, BlockingQueue<E>, List<E>, Queue<E>, Set<E>,

SortedSet<E>
所有已知实现类:
AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList,

AbstractSet, ArrayBlockingQueue, ArrayList, AttributeList,

BeanContextServicesSupport, BeanContextSupport, ConcurrentLinkedQueue,

CopyOnWriteArrayList, CopyOnWriteArraySet, DelayQueue, EnumSet, HashSet,

JobStateReasons, LinkedBlockingQueue, LinkedHashSet, LinkedList,

PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, Stack,

SynchronousQueue, TreeSet, Vector

-----------Map接口-------------
java.util
接口 Map<K,V>
所有已知子接口:
ConcurrentMap<K,V>, SortedMap<K,V>
所有已知实现类:
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, EnumMap, HashMap,

Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties,

Provider, RenderingHints, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap

热心网友 时间:2022-03-29 05:54

3种吧我记得 面试的时候会问。。。

set(集)、list(列表)和map(映射)。

区别嘛 HASHMAP只有KEY和value值对应的。。set是可以自动清楚相同的元素
list是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。
列表在数据结构中分别表现为:数组和向量、链表、堆栈、队列。

热心网友 时间:2022-03-29 07:45

学习
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机进水,声音变哑小 中柏电脑卡顿升级win10中柏win10菜单键失灵应用商店下载软件一直显示准 ... 公司破产流程有哪些步骤? 公司法中破产清算债务流程 企业破产清算流程步骤 如何判断中国沙棘的成熟度? 沙棘什么时候采摘 电机热保护继电器作用,详解电机保护装置的作用和原理 梦到自己考试是什么预兆 燃气灶安装熄火保护 5000元的手表什么牌子比较好 五千左右买什么手表好 月收入5000想买款手表,有哪些良心品牌推荐? 想买块男士手表,价格5000左右,二十几岁带的。 泗洪表店5000块钱的是什么表 想给自己买块表,5000以上的,有哪些推荐? 5000左右的手表哪个牌子要好一点 5000元左右的手表哪个牌子比较好? 5000左右的表买什么好 5千左右 买什么牌子手表好 五千块钱左右,有哪些手表适合购买? 想买个手表,5000左右的,什么牌子的比较好 购物预算在五千元以内的话,有哪些手表适合购买呢? 想买块男士手表,35岁左右男士,5000左右那个牌子... 预算5000想买块手表请问什么牌子什么系列的比较好? 五千块钱左右,有哪些手表适合购买呢? 怎么查询EMS收货人是否收到? 怎么查找是否收到邮件 根据快递货号,如何查询邮件到达情况 如何查询邮件包裹已经到达什么地方了? 怎样做好火灾防范措施 工作场所应做哪些火灾预防措施?发生火灾后如何处置? 如遇到火灾我们学生应该怎么做? 正确的火灾防范措施有哪些 怎样预防火灾,有几种灭火的方法? 预防森林火灾的措施有哪些? 如何防止火灾的发生? 新形势下如何做好火灾防控 java中的几个集合类 JAVA中几种集合(List、Set和Map)的区别 朴信惠人品怎么样?她和李承焕的事情是不是真的? 朴信惠官宣婚讯,婚前已意外怀孕,其男友有何背景? 蔡琳和李承焕为什么离婚? 朴信惠演过的电视剧有哪些? 朴信惠演过什么韩剧啊? 朴信惠在《哥》中的形象是什么样的? 朴信惠是谁?什么背景~ 朴信惠13岁就进演艺圈 拍天国的阶梯了? 韩国女演员有哪些? 朴信惠是怎么被导演发掘的?