数据结构(Java)——No2.集合框架中接口和其各自对应的常见实现类之间的关系

Collection 常用方法说明

方法签名说明
boolean add(E e)将元素 e 放入集合中
void clear()删除集合中的所有元素
boolean isEmpty()判断集合是否没有任何元素,俗称空集合
boolean remove(Object e)如果元素 e 出现在集合中,删除其中一个
int size()返回集合中的元素个数
Object[] toArray()返回一个装有所有集合中元素的数组

方法示例:

import java.util.Collection;
import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
	public static void main(String[] args) {
		Collection<String> list = new ArrayList<>();
		System.out.println(list.size());	//0
		System.out.println(list.isEmpty()); //true
		list.add("我");						
		list.add("爱");						
		list.add("Java");					
		System.out.println(list.size());	//3
		System.out.println(list.isEmpty()); //false
		Object[] array = list.toArray();	//[我, 爱, Java]
		System.out.println(Arrays.toString(array));//我 	爱 	Java
		for (String s : list) {
			System.out.println(s);			//我
		}
		list.remove("爱");
		for (String s : list) {
			System.out.println(s);			//Java
		}
	list.clear();
		System.out.println(list.size());	//0
		System.out.println(list.isEmpty());	//true
	}
}

Set 常用方法说明

方法解释
boolean add(E e)添加元素,但重复元素不会被添加成功
void clear()清空集合
boolean contains(Object o)判断 o 是否在集合中
Iterator iterator()返回迭代器
boolean remove(Object o)删除集合中的 o
int size()返回set中元素的个数
boolean isEmpty()检测set是否为空,空返回true,否则返回false
Object[] toArray()将set中的元素转换为数组返回
boolean containsAll(Collection<?> c)集合c中的元素是否在set中全部存在,是返回true,否则返回false
boolean addAll(Collection<? extends E> c)将集合c中的元素添加到set中,可以达到去重的效果

TreeSet方法示例

package com.yty;

import java.util.*;

/**
 * @author yty
 * @version 1.0
 * @date 2021-10-28 13:50
 */
public class Test {
    public static void main(String[] args) {
        Set<String> s = new TreeSet<>();
        // add(key): 如果key不存在,则插入,返回ture
        // 如果key存在,返回false
        boolean isIn = s.add("apple");
        s.add("orange");
        s.add("peach");
        s.add("banana");
        System.out.println(s.size()); 		
        System.out.println(s);
        isIn = s.add("apple");
        // add(key): key如果是空,抛出空指针异常
        //s.add(null);
        // contains(key): 如果key存在,返回true,否则返回false
        System.out.println(s.contains("apple"));
        System.out.println(s.contains("watermelen"));
        // remove(key): key存在,删除成功返回true
        // key不存在,删除失败返回false
        // key为空,抛出空指针异常
        s.remove("apple");
        System.out.println(s);
        s.remove("watermelen");
        System.out.println(s);
        // 抛出空指针异常
        // s.remove(null);
        Iterator<String> it = s.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + " ");
        }
        System.out.println();
    }
}
/*
运行结果:
		4
		[apple, banana, orange, peach]
		true
		false
		[banana, orange, peach]
		[banana, orange, peach]
		banana orange peach 

*/


HashSet方法示例

package com.yty;

import java.util.*;

/**
 * @author yty
 * @version 1.0
 * @date 2021-10-28 13:50
 */
public class Test {
    public static void main(String[] args) {
        Set<String> s = new HashSet<>();
        // add(key): 如果key不存在,则插入,返回ture
        // 如果key存在,返回false
        boolean isIn = s.add("apple");
        s.add("orange");
        s.add("peach");
        s.add("banana");
        System.out.println(s.size());
        System.out.println(s);
        isIn = s.add("apple");
        // add(key): key如果是空,抛出空指针异常
        //s.add(null);
        // contains(key): 如果key存在,返回true,否则返回false
        System.out.println(s.contains("apple"));
        System.out.println(s.contains("watermelen"));
        // remove(key): key存在,删除成功返回true
        // key不存在,删除失败返回false
        // key为空,抛出空指针异常
        s.remove("apple");
        System.out.println(s);
        s.remove("watermelen");
        System.out.println(s);
        // 抛出空指针异常
        // s.remove(null);
        Iterator<String> it = s.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + " ");
        }
        System.out.println();
    }
}
		/*
		运行结果:
		4
		[orange, banana, apple, peach]		//观察TreeSet与HashSet的区别!!!
		true
		false
		[orange, banana, peach]
		[orange, banana, peach]
		orange banana peach 
		*/


List 常用方法说明

方法解释
boolean add(E e)尾插 e
void add(int index, E element)将 e 插入到 index 位置
boolean addAll(Collection<? extends E> c)尾插 c 中的元素
E remove(int index)删除 index 位置元素
boolean remove(Object o)删除遇到的第一个 o
E get(int index)获取下标 index 位置元素
E set(int index, E element)将下标 index 位置元素设置为 element
void clear()清空
boolean contains(Object o)判断 o 是否在线性表中
int indexOf(Object o)返回第一个 o 所在下标
int lastIndexOf(Object o)返回最后一个 o 的下标
List subList(int fromIndex, int toIndex)截取部分 list

1.ArrayList(顺序表)

方法解释
ArrayList()无参构造
ArrayList(Collection<? extends E> c)利用其它Collection构建ArrayList
ArrayList(int initialCapacity)指定顺序表初始容量

2.LinkedList(链表)

方法解释
LinkedList()无参构造

方法示例:

package com.yty;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * @author yty
 * @version 1.0
 * @date 2021-10-28 13:50
 */
public class Test {
    public static void main(String[] args) {
        List<String> courses = new ArrayList<>();
        courses.add("C 语言");
        courses.add("Java SE");
        courses.add("Java Web");
        courses.add("Java EE");
        // 和数组一样,允许添加重复元素
        courses.add("C 语言");
        // 按照添加顺序打印
        System.out.println(courses);
        // 类似数组下标的方式访问
        System.out.println(courses.get(0));
        System.out.println(courses);
        courses.set(0, "计算机基础");
        System.out.println(courses);
        // 截取部分 [1, 3)
        List<String> subCourses = courses.subList(1, 3);
        System.out.println(subCourses);
        // 重新构造
        List<String> courses2 = new ArrayList<>(courses);
        System.out.println(courses2);
        List<String> courses3 = new LinkedList<>(courses);
        System.out.println(courses3);
        // 引用的转换
        ArrayList<String> courses4 = (ArrayList<String>)courses2;
        System.out.println(courses4);
        // LinkedList<String> c = (LinkedList<String>)course2; 错误的类型
        LinkedList<String> courses5 = (LinkedList<String>)courses3;
        System.out.println(courses5);
        // ArrayList<String> c = (ArrayList<String>)course3; 错误的类型
	

		/*
		运行结果:
		[C 语言, Java SE, Java Web, Java EE, C 语言]
		C 语言
		[C 语言, Java SE, Java Web, Java EE, C 语言]
		[计算机基础, Java SE, Java Web, Java EE, C 语言]
		[Java SE, Java Web]
		[计算机基础, Java SE, Java Web, Java EE, C 语言]
		[计算机基础, Java SE, Java Web, Java EE, C 语言]
		[计算机基础, Java SE, Java Web, Java EE, C 语言]
		[计算机基础, Java SE, Java Web, Java EE, C 语言]

		*/

    }
}


Map常用方法说明

方法签名说明
V get(Object k)根据指定的 k 查找对应的 v
V getOrDefault(Object k, V defaultValue)根据指定的 k 查找对应的 v,没有找到用默认值代替
V put(K key, V value)将指定的 k-v 放入 Map
boolean containsKey(Object key)判断是否包含 key
boolean containsValue(Object value)判断是否包含 value
Set<Map.Entry<K, V>> entrySet()将所有键值对返回
boolean isEmpty()判断是否为空
int size()返回键值对的数量

方法实例:

import java.util.Map;
import java.util.HashMap;
public class Demo {
	public static void main(String[] args) {
		Map<String, String> map = new HashMap<>();
		System.out.println(map.size());	
		System.out.println(map.isEmpty());
		System.out.println(map.get("作者"));
		System.out.println(map.getOrDefault("作者", "佚名"));
		System.out.println(map.containsKey("作者"));
		System.out.println(map.containsValue("佚名"));
		map.put("作者", "鲁迅");
		map.put("标题", "狂人日记");
		map.put("发表时间", "1918年");
		System.out.println(map.size());
		System.out.println(map.isEmpty());
		System.out.println(map.get("作者"));
		System.out.println(map.getOrDefault("作者", "佚名"));
		System.out.println(map.containsKey("作者"));
		System.out.println(map.containsValue("佚名"));
		for (Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println(entry.getKey());
			System.out.println(entry.getValue());
		}
	}
}
		/*运行结果
		0
		true
		null
		佚名
		false
		false
		3
		false
		鲁迅
		鲁迅
		true
		false
		作者
		鲁迅
		发表时间
		1918年
		标题
		狂人日记
		*/
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值