刘威集合总结

集合: Collection ArrayList LinkedList 迭代器List总结

集合 :

java中提供的一种容器,可以储存多个任意类型数据

collection单列 list可重复 set不可重复

map双列

collection集合:

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合

collection常用方法:

public boolean add(E e) 把给定的对象添加到当前集合中 。

public boolean remove(E e) 把给定的对象在当前集合中删除。

public boolean contains(E e) 判断当前集合中是否包含给定的对象。

public boolean isEmpty() 判断当前集合是否为空。

public int size() 返回集合中元素的个数。

public Object[] toArray() 把集合中的元素,存储到数组中。

public void clear() 清空集合中所有的元素。

Collections集合工具类:

public static void sort(List list) 将指定的列表按升序排序 public static void reverse(List<?> list) 反转指定列表中元素的顺序

public static void shuffle(List<?> list) 使用默认的随机源随机排列指定的列表

代码演示:

import java.util.ArrayList;
import java.util.Collection;

public class Demo1Collection {
    public static void main(String[] args) {
        // 创建集合对象 
        // 使用多态形式
        Collection<String> coll = new ArrayList<String>();
        // 使用方法
        // 添加功能  boolean  add(String s)
        coll.add("小李广");
        coll.add("扫地僧");
        coll.add("石破天");
        System.out.println(coll);

        // boolean contains(E e) 判断o是否在集合中存在
        System.out.println("判断  扫地僧 是否在集合中"+coll.contains("扫地僧"));

        //boolean remove(E e) 删除在集合中的o元素
        System.out.println("删除石破天:"+coll.remove("石破天"));
        System.out.println("操作之后集合中元素:"+coll);

        // size() 集合中有几个元素
        System.out.println("集合中有"+coll.size()+"个元素");

        // Object[] toArray()转换成一个Object数组
        Object[] objects = coll.toArray();
        // 遍历数组
        for (int i = 0; i < objects.length; i++) {
            System.out.println(objects[i]);
        }

        // void  clear() 清空集合
        coll.clear();
        System.out.println("集合中内容为:"+coll);
        // boolean  isEmpty()  判断是否为空
        System.out.println(coll.isEmpty());  	
    }
}

set集合:

无序并且不能重复的集合:Set
这里需要说明一点,这里的无序是指不像数组那样有下标,也不像List有个index,和下文中TreeSet里面那个元素顺序不是一个概念
两个实现类:HashSet 和TreeSet;
HashSet的话,基本用法和List差不多,但是有以下三个特点:

元素不允许重复
元素存放无序
元素可以是null(但是因为第一条元素不能重复,所以只能有一个null)

TreeSet集合概述:

元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法

TreeSet():根据其元素的自然排序进行排序

TreeSet(Comparator comparator) :根据指定的比较器进行排序

没有带索引的方法,所以不能使用普通for循环遍历

由于是Set集合,所以不包含重复元素的集合

List集合特点:

它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。

它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。

集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。

List集合常用方法:

public void add(int index, E element) 将指定的元素,添加到该集合中的指定位置上。 public E get(int index) 返回集合中指定位置的元素·。

public E remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素。 public E set(int index, E element) 用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

LinkedList集合常用方法:

public void addFirst(E e) 将指定元素插入此列表的开头。

public void addLast(E e) 将指定元素添加到此列表的结尾。

public E getFirst() 返回此列表的第一个元素。

public E getLast() 返回此列表的最后一个元素。

public E removeFirst() 移除并返回此列表的第一个元素。

public E removeLast() 移除并返回此列表的最后一个元素。

public E pop() 从此列表所表示的堆栈处弹出一个元素。

public void push(E e) 将元素推入此列表所表示的堆栈。

public boolean isEmpty() 如果列表不包含元素,则返回true。

代码演示:

public class ListDemo {
    public static void main(String[] args) {
		// 创建List集合对象
    	List<String> list = new ArrayList<String>();
    	
    	// 往 尾部添加 指定元素
    	list.add("图图");
    	list.add("小美");
    	list.add("不高兴");
    	
    	System.out.println(list);
    	// add(int index,String s) 往指定位置添加
    	list.add(1,"没头脑");
    	
    	System.out.println(list);
    	// String remove(int index) 删除指定位置元素  返回被删除元素
    	// 删除索引位置为2的元素 
    	System.out.println("删除索引位置为2的元素");
    	System.out.println(list.remove(2));
    	
    	System.out.println(list);
    	
    	// String set(int index,String s)
    	// 在指定位置 进行 元素替代(改) 
    	// 修改指定位置元素
    	list.set(0, "三毛");
    	System.out.println(list);
    	
    	// String get(int index)  获取指定位置元素
    	
    	// 跟size() 方法一起用  来 遍历的 
    	for(int i = 0;i<list.size();i++){
    		System.out.println(list.get(i));
    	}
    	//还可以使用增强for
    	for (String string : list) {
			System.out.println(string);
		}  	
	}
}

Map集合:

键值对映射关系

一个键对应一个值

键不能重复,值可以重复

元素存取无序

Map集合的基本功能:

V put(K key,V value) 添加元素

V remove(Object key) 根据键删除键值对元素

void clear() 移除所有的键值对元素

boolean containsKey(Object key) 判断集合是否包含指定的键

boolean containsValue(Object value) 判断集合是否包含指定的值

boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数

数组、List、Set、Map的数据转换:

不同类型的集合相互转换在程序开发中都是非常常见的 API 操作,这些基础操作一定要熟悉。

迭代器:

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

代码演示:

迭代代码演示:

public class IteratorDemo {
  	public static void main(String[] args) {
        // 使用多态方式 创建对象
        Collection<String> coll = new ArrayList<String>();

```java
    // 添加元素到集合
    coll.add("串串星人");
    coll.add("吐槽星人");
    coll.add("汪星人");
    //遍历
    //使用迭代器 遍历   每个集合对象都有自己的迭代器
    Iterator<String> it = coll.iterator();
    //  泛型指的是 迭代出 元素的数据类型
    while(it.hasNext()){ //判断是否有迭代元素
        String s = it.next();//获取迭代出的元素
        System.out.println(s);
    }
```

  	}
}

for循环:

高级for循环,专门用来遍历数组和集合的。

格式:
for(元素的数据类型  变量 : Collection集合or数组){ 
  	//写操作代码
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值