集合

集合(动态数组)

(一)ArrayList集合
创建语法:ArrayList< E > list = new ArrayList< E >( );
  //E为泛型的写法,用于指定集合中存储什么数据类型(必须是引用数据类型)
  //若要使用泛型,jdk版本必须在1.5及1.5以上

自动获取返回类型快捷键(在方法尾部同时按):shift+alt+L

ArrayList集合的特点:

  1. 是一种动态数组,声明时不需要指定集合大小,当空间不够时,可以自动变大
  2. 从集合中取数据时,要通过下标来取
  3. 集合中,允许出现重复元素
  4. 存储数据时,采用的是队列这种数据结构(先存储的数据最先被取出来)
  5. 存放在此集合中的数据是有顺序的
*常用的数据结构:
	1.队列:存放的数据,先进先出,后进后出
		(火车进山洞:火车头先进山洞火车头也是先出山洞的)
	2.栈:存放的数据,先进后出,后进先出
		(子弹上膛:最先装的子弹是最后打出来的)

1. 向集合中添加数据---------add()
  list.add(“jack”); //将数据添加到集合尾部
  list.add(1,“jack”); //将数据添加到集合中下标为1的位置

2. 根据下标从集合中得到一个元素---------get()
  String val = list.get(0);//得到集合中下标为0的元素
  String val = list.get(3);

//如果集合中没有下标为3的元素,强制取值,会报出如下错误:在这里插入图片描述
3. 获取集合中存储的元素个数---------size()
  int count = list.size();

4. 循环遍历
  //循环遍历的方法与数组的方法相同

方式一:

	for(int i=0;i<list.size();i++){
		int val = list.get(i);
	}

方式二:

	for(int val:list){

	}

5. 删除集合中的元素--------remove()

在数组中,删除元素要考虑后面的元素会向前挪动的问题
而使用ArrayList集合,删除元素后,后面的元素会自动向前挪动

方式一:
   list.remove(下标);  //根据下标删除元素
方式二:
   list.remove(元素);  //直接删除指定元素

假如元素也为数字时,优先当做下标删除处理

ArrayList<Integer> list = new ArrayList<Integer>();
		
		list.add(1);
		list.add(2);
		list.add(3);
		
		list.remove(1); //1为元素
		System.out.println(list);
*运行结果:[1,3]

6. 判断集合为空--------isEmpty()
  boolean flag = list.isEmpty();

ArrayList<Integer> list = new ArrayList<Integer>();
		
		list.add(1);
		list.add(2);
		list.add(3);
		
		if (list.isEmpty()) {
			System.out.println("没有数据");
		}else {
			System.out.println("有数据,个数为"+list.size()+"个");
		}
*运行结果:有数据,个数为3个

7. 判断集合中是否存在某一个元素--------contains()
  boolean flag = list.contains(元素);

ArrayList<String> list = new ArrayList<String>();
		
		list.add("q");
		list.add("w");
		list.add("a");
		
		if (list.contains("A")) {
			System.out.println("存在");
		}else {
			System.out.println("不存在");
		}
*运行结果:不存在

8. 移除集合中所有元素--------clear()
  list.clear();

		ArrayList<String> list = new ArrayList<String>();
		
		list.add("q");
		list.add("w");
		list.add("a");
		
		list.clear();
		System.out.println(list);
*运行结果:[]

(二)HashSet集合
 
特点:

  1. 是一种动态数组,声明时不需要指定集合大小,空间不够时可以自动变大
  2. 通过下标遍历元素
  3. 集合中不允许出现重复元素(如果元素存在,不会添加)
  4. 存放在此集合中的数据是无序的

ArrayList集合与HashSet集合的区别:
  1. ArrayList集合中允许有重复元素,后者不允许
  2. ArrayList集合是有序排列,后者是无序排列

(三)HashMap集合
创建语法:HashMap<K,V> map = new HashMap<K,V>
  //此集合不能直接循环遍历,它不能通过下标访问,它要通过键来取值

HashMap集合的特点

  1. 存储数据时,要同时设置键(K)和值(V),一个键对应一个值
  2. 取数据时,要通过键取到对应的值
  3. 集合中的键不允许出现重复值
    (如果键重复,后一次的值会将前一次的值覆盖)
  4. 存放的数据没有顺序

常用方法:
1.向集合中存储数据--------put()
   map.put( K , V );

2.取集合中的值--------get()
   String val = map.get(K);

3.得到集合的长度(存储的键对应值的个数)--------size()
   int len = map.size();

4.删除集合中的数据--------remove()
   map.remove(K);

5.清空集合中的数据--------clear()
   map.clear();

6.判断集合中是否包含某个键--------containsKey()
   boolean flag = map.containsKey(K);

7.判断集合中是否包含某个值--------containsValue()
   boolean flag = map.containsValue(V);

8.获取集合中所有的键--------keySet()
   Set< E > vals = map.keySet();

9.获取集合中所有的值--------values()
   Couection< E > vals = map.values();

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值