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集合有索引,并且是通过下标索引来获取数据的。我们来看一下输出结果:
在这里插入图片描述
这里只有两组数据,论据并不是很充分,可以多加几组,但是无论加多少组,你都会发现它的输出顺序是按着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));

输出结果:
在这里插入图片描述
这里我们看出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();//这里的范型也得是String
while(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值。

啊终于敲完了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值