java中集合的使用-set,list,map

感觉最近总结了不少东西,而且每次总结的速度都比之前快了不少,原因主要是因为这两个月一直在做项目,每天为几行代码整的晕头转向的,可不是真的晕头转向哦,而是解决各种疑难杂症,所以笔记里留下了好多东西,不像之前看视频学习都是在做学习笔记,很少实践性的东西,这次可真是证明了:实践出真知呀。

记得第一次听说集合是好久之前了,至于有多么之前就不太记得,只是记得在我听说集合这个名词的时候只用过list,至于set和map都是第一次听说,而这次ITOO的项目可让我长见识了,着三个集合都用到了,也从实践中了解到了他们的异同,下面就来介绍一下吧:

说起集合那么Collection就是必须知道的,因为Collection是最基本的集合接口,一些Collection允许相同的元素有些则不允许。

我们今天要说到的三个集合,其中set和list都继承自Collection,首先来说一下set:

一、set集合

set是一种不包含重复元素的Collection,存放的是对象的引用,没有重复对象:

  Set set=new HashSet();
  String  s1=new String("hello") ;
  String s2=s1;
 String s3=new String("word");
 set.add(s1);
 set.add(s2);
 set.add(s3);
System.out.println(set.size());//打印集合对象的数目为2.
//遍历set的方法:
Iterator<String> it=set.iterator();
While(it.hasNext()){
    System.out.println(it.next());
}

ITOO的项目中主要在实关联关系的一对多,多对多关系中使用到set,用于存放多端的实体对象。

二、list集合

list集合元素是以线性方式存储的,集合中可以存放重复对象,使用方法:

List list=new ArrayList();
 list.add(0,"a");
 list.add(1,"b");
 list.add(2,"c");
 list.add(3,"d");
 System.out.println(list.size());//打印集合对象4;
//遍历list的方法有:
Iterator it=list.iterator;
While(it.hasNext()){
      System.out.println(it.next());}

三、map集合

map集合并没有继承Collection接口,map提供key,value的映射,一个map中不能包含相同的key,每个key只能映射一个value,map的使用:

Map<String, String> map=new HashMap<String, String>();
map.put("专业选修", "100");
 map.put("专业必修", "35");
 map.put("公共选修", "120");
 map.put("公共必修", "100");
//遍历map的方法:
  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

集合的使用很重要,可以让我们对一批数据赋予相同的属性,也许这就是老师所说的容器的概念。

时间: 2024-10-20 16:47:15

java中集合的使用-set,list,map的相关文章

Java中集合List,Map和Set的区别

Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Key不能重复 4.Set中的元素是无序的,不可重复的

Java中的容器类(List,Set,Map,Queue)

Java中的容器类(List,Set,Map,Queue) 一.基本概念 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)Collection.一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的顺序保存元素,而Set不能有重复的元素.Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同). 2)Map.一组成对的“键值对”对象,允许你使用键来查找值.ArrayList允许你使用数字来查找值,因此在某种意义上讲,它将数字与对象关联在

Java中集合的概述

一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. 二.Java中集合框架图解与说明 1.Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类.但是却让其被继承产生了两个接口,就是Set和List.Set中不能包含重复的元素.List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式.常用方法如下

Java中集合与数组的切换

在Java开发中常常遇见集合与数组的互相切换,如何实现呢,呵呵呵,很简单: import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class Test { /** * 将Set集合转换为数组 * * @author GaoHuanjie */ private static void setT

JAVA中集合转数组遍历

JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray(). 代码: public static void main(String[] args) {        // TODO Auto-generated method stub        Collection c=new ArrayList();        c.add(new Student("kj",12));        c.add(new Student("uj

多用多学之Java中的Set,List,Map

很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进拉出,迭代遍历,蛮方便的. 也不知道从什么时候开始慢慢的代码中就经常会出现HashMap和HashSet之类的工具类.应该说HashMap比较多一些,而且还是面试经典题,平时也会多看看.开始用的时候简单理解就是个键值对应表,使用键来找数据比较方便.随后深入了解后发现这玩意还有点小奥秘,特别是新版本的JDK对Hash

浅谈Java中的Set、List、Map的区别(1)

就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. JAVA集合主要分为三种类型: Set(集) List(列表) Map(映射) Collection 接口 :Collection是最基本的集合接口,声明了适用

java中key值可以重复的map:IdentityHashMap

在Java中,有一种key值可以重复的map,就是IdentityHashMap.在IdentityHashMap中,判断两个键值k1和 k2相等的条件是 k1 == k2 .在正常的Map 实现(如 HashMap)中,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1==null ? k2==null : e1.equals(e2)). IdentityHashMap类利用哈希表实现 Map 接口,比较键(和值)时使用引用相等性代替对象相等性.该类不是 通用 Map 实现!此类

【语言】java中key值可以重复的map:IdentityHashMap

http://www.rigongyizu.com/java-identityhashmap/ 在java中, 有一种key值可以重复的map,就是IdentityHashMap.在IdentityHashMap中,判断两个键值k1和 k2相等的条件是 k1 == k2 .在正常的Map 实现(如 HashMap)中,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1==null ? k2==null : e1.equals(e2)). IdentityHashMap类利用哈希表实

Java中集合关键字的区别

1. ArrayList.Vector和Stack有什么区别? 1.ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样) ?   2.Stack继承了Vector,两者的方法都是线程安全,ArrayList没有考虑线程的问题 3.vector速度慢,ArrayList做了优化,效率更高 2. ArrayList 和 LinkedList 的区别? 1. ArrayList底层是数组的实现,linkedList地层是连接的实现(简:数据结构不同) 1.1