集合

和数组区别:

    1) 数组长度是固定的;

       集合长度是不固定的,是变长;

   2)数组可以存储基本类型 和 引用类型的数据;

      集合 只能存储引用类型的数据。

家族成员:

Collection接口:单列存储。数据可以重复存储。

List接口 (线性表):  数据可以重复存储,有顺序的,线性排列。

List的常用方法:

package com.yaojun.day4;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class TestJH {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<String> al = new ArrayList<>();
		// 1. 向指定的位置添加元素
		al.add("妖君");
		al.add("平淡");
		al.add("一般");
		al.add(2, "慢慢");		
		// 2. 获得索引位置的元素
		al.get(1);
		// 3. 用第二个参数的元素 替换 索引位置的元素	
		al.set(2, "成长");
		// 4. 取子集  【起始,终止)
		al.subList(1, 2);
		// 5. 排序
		al.sort(null);
		al.sort(new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				// TODO Auto-generated method stub
				return o2.compareTo(o1);
			}
		});
		//al.sort((s1,s2)->s2.compareTo(s1));
		System.out.println(al);
		
	}

}

2.3 集合遍历

List遍历有:for循环  foreach  forEach

//增强for遍历
		for (String string : al) {
			System.out.println(string);
		}
		//forEach遍历
		al.forEach(new Consumer<String>() {
			@Override
			public void accept(String t) {
				// TODO Auto-generated method stub
				System.out.println(t);
			}
		});
		//lambda形式
		al.forEach((s)->System.out.println(s));
                //极简方式
		al.forEach(System.out::println);

迭代器:

就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。

 Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList、LinkedList、HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构的;HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。

  因为容器的内部结构不同,很多时候可能不知道该怎样去遍历一个容器中的元素。所以为了使对容器内元素的操作更为简单,Java引入了迭代器模式! 

2.3.1 Iterator

Iterator<String> i = al.iterator();
		while(i.hasNext()){
			System.out.println(i.next());
		}
	

2.3.2 ListIterator

只能遍历 List类型的集合

 

	ListIterator<String> li = al.listIterator();
		while(li.hasNext()){
			System.out.println(li.next());
		}
		while(li.hasPrevious()){
			System.out.println(li.previous());
		}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值