当前位置: 首页 >服务端 > Java常用集合——List集合、Set集合、Map集合

Java常用集合——List集合、Set集合、Map集合

List集合

先列举一下List集合的几个特点,再依次分析:

  1. 长度可变
  2. 可以存放不同数据类型
  3. 有索引
  4. 通过下标索引来获取数据
  5. 集合中的元素是有序的
  6. 可以有重复的元素

我们首先创建一个变量list:List list=new ArrayList(); 这里的List要选择后缀名java.util的那一个选项。
其实它刚打出来是这样的List<E> list=new ArrayList<E>(); 这个是可以删掉不写的,里面是泛型,后面再说。

往集合里放一些数据,我们可以用add();方法:list.add(123456); 也可以放入list.add("ABC");
这里体现了List集合的长度可变可以存放不同数据类型的特点。

我们想获取这些数据怎么办呢,有一个专门的方法可以获取——get();

System.out.println(list.get(0));System.out.println(list.get(1));

这样就获取了刚刚放入的数据啦。(第一个数据的下标是0,第二个数据是1,以此类推)
这儿能够获取就是因为list集合有索引,并且是通过下标索引来获取数据的。我们来看一下输出结果:
Java常用集合——List集合、Set集合、Map集合 _ JavaClub全栈架构师技术笔记
这里只有两组数据,论据并不是很充分,可以多加几组,但是无论加多少组,你都会发现它的输出顺序是按着add的顺序来的,所以集合中的元素是有序的

这时候,我们再add一个相同的数据

List list=new ArrayList();list.add(123456);list.add("ABC");list.add(123456);System.out.println(list.get(0));System.out.println(list.get(1));System.out.println(list.get(2));

输出结果:
Java常用集合——List集合、Set集合、Map集合 _ JavaClub全栈架构师技术笔记
这里我们看出list集合是可以有重复的元素,这一点和数学中的集合不同。

想要删除数据,使用remove方法,同样也是用下标索引删除数据。

如果我们想获得这个集合的长度,也有个直接的方法——get(); System.out.println(list.size());这样,即可获得。

如果想遍历数组,可以这样写:

for (int i = 0; i < list.length; i++) {	System.out.println(list.get(i));}

链表集合

创建变量的公式:List<String> linklist=new LinkedList<String>();
这里我们在<>写了String,这意味着我们指定了数据类型,只能放String类型,不能放其他数据类型了,这里叫泛型

链表集合的添加和获取与List集合一样都是add和get方法,不再赘述。
但这里的遍历不仅可以用for循环,还可以用for-each循环:

for (String string : linklist) {	System.out.println(string);}

但是上面的List集合不能用for-each遍历,因为没有泛型,数据类型不统一。

Set集合

  1. 没有索引
  2. 不允许有重复元素
  3. 元素无序
  4. 允许有null值

Set集合我们用的最多的是HashSet:Set<String> set=new HashSet<String>();set集合的添加、删除同样也是add和remove方法,但是因为Set没有索引,我们获取的时候是找不到get方法的。
所以Set集合的输出可以直接输出:System.out.println(set);
也可以用for-each循环:

for (String string : set) {	System.out.println(string);}

输出会发现,结果的顺序并不是按照add的顺序来的,所以set集合的元素是无序的

如果我们set.add(null);这个是允许的。

TreeSet

  1. 有序集合,元素自然排列
  2. 不允许有null值
  3. 不允许有重复元素

TreeSet也是常用的:Set<String> treeSet=new TreeSet<String>();
获取数据的方法依旧是add。

与Set的不同点是,TreeSet想要遍历,必须使用迭代器
具体代码如下:

Set<String> treeSet=new TreeSet<String>();treeSet.add("abcd");treeSet.add("1234");Iterator<String> it=treeSet.iterator();//这里的范型也得是Stringwhile(it.hasNext()) {	System.out.println(it.next());  //使用while循环

Map集合

这是我们用的最多的集合。
其特点是:

  1. key不能重复,如果重复,value的值会被覆盖
  2. key和value都可以为null
  3. 无序存储

使用HashMap:Map<String, String> map=new HashMap<String, String>();
Map集合的最大特点就是它是键值对来表示,键(key)、值(value)可相同也可不同

添加数据用到的不是add方法了,而是put方法:

map.put("1", "南京");map.put("2", "上海");

可以通过key来获取数据:System.out.println(map.get("2"));这时候我们得到的是“上海”。
删除也可以用key来进行:map.remove("2");

如果在key和value的位置上都写上null,也是可以的。

遍历——只遍历value

Iterator<String>it=map.values().iterator();while (it.hasNext()) {	System.out.println(it.next());}

遍历——遍历key和value
方法一:

for (String string : map.keySet()) {	System.out.println(string+":"+map.get(string));}

方法二:

for (Entry<String, String>entry : map.entrySet()) {		String key=entry.getKey();		String value=entry.getValue();		System.out.println(key+":"+value);}

HashTable

创建一个新变量:Map<String, String> table=new Hashtable<String, String>();
放入数据和Map集合一样用put方法。

遍历:

for (String string : table.keySet()) {	System.out.println(string+":"+table.get(string));}

HashTable与Map集合的不同点就是HashMap的key和value都不允许有null值。

啊终于敲完了!

作者:一颗坏蛋
来源链接:https://blog.csdn.net/qq_45879084/article/details/105083756

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/68808.html

标签:List Java Map
分享给朋友:

“Java常用集合——List集合、Set集合、Map集合” 的相关文章