赞
踩
目录
1.1.1.2,ArrayList的remove()删除方法
1.1.1.3,ArrayList的contains()判断方法
1.1.1.4,ArrayList的set()排序方法和size()大小方法
1.2.1.3,HashSet的contains()判断方法
1.2.1.4,HashSet的size()大小方法和clear()清空方法
2.1.3,HashMap的containkey()和containvalue判断方法
程序中可能通过数组来保存多个对象,因为数组长度是不可变的。JDK中提供了一些特殊的类,这些类 可以存储任何对象,并且长度可变,在java中这些类被为集合。集合类位于 java.util 包中。
集合有两大类:
java.util.Collection 是所有单列集合的父接口,因此在Collection中定义了单列集合 List 和 Set 通用的一些方法。
方法声明 | 功能描述 |
boolean add(Object o) | 向集合中添加一个元素 |
boolean addAll(Collection c) | 增加一个集合(多个元素) |
void clear() | 清空集合 |
boolean remove(Object o) | 删除集合中的一个对象(元素) |
boolean removeAll(Collection c) | 删除一个集合(多个元素) |
boolean isEmpty() | 是不是空的 |
boolean contains(Object o) | 判断集合有没有这个元素 |
boolean containsAll(Collection c) | 判断集合中有没有参数集合 |
Iterator iterator() | 返回一个遍历迭代器 |
int size() | 返回集合的元素个数 |
List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地将实现了List接口的对象称为List 集合,本质更象一个动态的数组。
List的常用方法:
方法 | 功能描述 |
void add(int index,Object element) | 向集合中指定位置添加一个元素 |
boolean addAll(int index,Collection c) | 向集合中指定位置增加一个集合(多个元素) |
Object get(int index) | 获取指定位置元素 |
Object remove(int index) | 删除指定位置元素 |
Object set(int index,Object element) | 修改指定位置的元素 |
int indexOf(Object o) | 获取指定元素索引 |
int lastIndexOf(Object o) | 获取最后一个元素索引 |
List subList(int fromIndex,int toIndex) | 将指定索引对象对换 |
java.util.ArrayList类是List接口的一个实现类,此对象相当于动态的数组。
实例化ArrayList对象有几种方式:
实例演示:
- //实例化 ArrayList
- ArrayList list1 = new ArrayList();
- var list2 = new ArrayList();
- List list3 = new ArrayList();
- //此方法实例出的对象,是只读的(不能添加 删除 移动位置,优点是能够快速建立集合实例对象)
- List list4 = List.of();
- //list4.add(10); 此行是错误的,因为List.of() 对象是只读的
- String[] arr = {"java","javascript","python","html"};
- //此方法实例出的对象,是只读的;list5.add(10);不可行
- List list5 = Arrays.asList(1,2,3);
ArrayList的常用方法添加、删除、判断、大小输出,修改,,排序,遍历:
实例演示:
- //实例化,这们实例化,集合可以添加任何类型的元素 默认是Object
- List list = new ArrayList();
- //添加元素
- list.add(10);
- System.out.println(list);
- list.add(5.665);
- System.out.println(list);
- list.add("java");
- System.out.println(list);
- list.add("mysql");
- System.out.println(list);
- //在指定位置添加元素
- list.add(0, "python");
- System.out.println(list);
- //添加多个元素
- list.addAll(List.of("html", "css"));
- System.out.println(list);
- //在指定位置添加多个元素
- list.addAll(0, List.of(100, 200, 300, 400, 500));
- System.out.println(list);
输出结果:
示例演示:
- List list = new ArrayList();
- list.addAll(List.of("java","php","c","go","c++","java","c"));
- System.out.println(list);
- //删除元素remove(Object o) remove(int index)
- //此时删除的是索引为5的元素,如果下标没有5就出异常
- //删除对象,成功返回布尔true,失败返回false
- var oo = list.remove(5);
- System.out.println(oo);
- //删除子集合,只要陈工删除一个元素就返回true
- System.out.println(list.removeAll(List.of("mysql", "java")));
- System.out.println(list);
- //清空集合
- list.clear();
- System.out.println(list);
输出结果:
示例演示:
- List list = new ArrayList();
- list.addAll(List.of("java","php","c","go","c++","java","c"));
- System.out.println(list);
- //判断某一个元素是否存在
- System.out.println(list.contains("php"));
- //判断集合是否为空
- System.out.println(list.isEmpty());
- //判断多个元素是否都存在,有一个不存在就返回false
- System.out.println(list.containsAll(List.of("mysql", "java")));
输出结果:
示例演示:
- List list = new ArrayList();
- list.addAll(List.of("java","php","c","go","c++","java","c"));
- System.out.println(list);
- System.out.println(list.size());
- list.set(0,"c++");
- System.out.println(list);
输出结果:
示例演示:
- List list = new ArrayList();
- list.addAll(List.of("java","php","c","go","c++","java","c"));
- System.out.println(list);
- //集合遍历
- for (Object obj : list) {
- System.out.println(obj);
- }
- for (int i = 0; i < list.size(); i++) {
- System.out.printf("list.get(%d) = %s%n", i, list.get(i));
- }
输出结果:
extends AbstractSequentialList
LinkedList同时实现了 List 接口和 Deque 对口,也就是收它既可以看作一个顺序容器,又可以看作一 个队列(Queue),同时又可以看作一个栈(stack),这样看来,linkedList简直就是无敌的,当你需要使 用栈或者队列时,可以考虑用LinkedList,一方面是因为Java官方已经声明不建议使用Stack类,更遗憾的是, Java里根本没有一个叫做Queue的类(只是一个接口的名字)。关于栈或队列,现在首选是ArrayDeque, 它有着比LinkedList(当作栈或队列使用时)更好的性能。
LinkedList常用方法同ArrayList基本相同,可以参照Arraylist尝试。
Set接口继承了Collection接口,集合中元素是不能重复的。如果有相关的元素重复内容,就保留原来的 元素,添加的元素取消,不能随机读取元素,没有顺序。
public interface Set extends Collection
实例化HashSet:
示例演示:
- HashSet hashset1=new HashSet();
- Set hashset2=new HashSet();
- var hashset=new HashSet();
示例演示:
- HashSet hashset=new HashSet();
- hashset.add("java");
- hashset.add("c");
- hashset.add("php");
- hashset.add("go");
- hashset.add("java");
- System.out.println(hashset);
- hashset.addAll(List.of("nihao","小明"));
- System.out.println(hashset);
输出结果:
示例演示:
- HashSet hashset=new HashSet(List.of(10,50,30,80,5));
- System.out.println(hashset);
- System.out.println(hashset.remove(50));
- System.out.println(hashset);
- System.out.println(hashset.removeAll(List.of(80, 4, 3)));
- System.out.println(hashset);
输出结果:
示例演示:
- HashSet hashset=new HashSet(List.of(10,50,30,80,5));
- System.out.println(hashset);
- System.out.println(hashset.contains(5));
- System.out.println(hashset.containsAll(List.of(10, 5)));
- System.out.println(hashset.containsAll(List.of(10, 5,4)));
输出结果:
示例代码:
- HashSet hashset=new HashSet(List.of(10,50,30,80,5));
- System.out.println(hashset);
- System.out.println(hashset.size());
- hashset.clear();
- System.out.println(hashset);
输出结果:
是一个有序,可排序的(默认是升序),不可重复元素的集合工具类。
示例演示:
- //实例化TreeSet对象
- //Set treemap=new TreeSet();
- TreeSet treeset=new TreeSet(List.of(5,9,8,4,55,4,1));
- System.out.println(treeset);
输出结果:
map接口是一个双列集合,每个元素有一个键值 对 Map
map集合方法:
HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着他不是线程安全的。它的 key、value 都可以为 null,此外,HashMap 中的映射不是有序的。
实例化HashMap
- //实例化HashMap,使用泛型
- Map<String,Integer> hash1=new HashMap<>();
- HashMap<String,Integer> hash2=new HashMap<>();
- //不使用泛型
- HashMap hash=new HashMap();
示例代码:
- HashMap hash=new HashMap();
- hash.put("小黑",1);
- hash.put("小黄",1);
- hash.put("小吕",1);
- hash.put("小黑",2);
- System.out.println(hash);
输出结果:
示例代码:
- HashMap hash=new HashMap();
- hash.put("小黑",1);
- hash.put("小黄",1);
- hash.put("小吕",1);
- hash.put("小黑",2);
- System.out.println(hash);
- System.out.println(hash.get("小黑"));
- System.out.println(hash);
输出结果:
示例代码:
- HashMap hash=new HashMap();
- hash.put("小黑",1);
- hash.put("小黄",1);
- hash.put("小吕",1);
- hash.put("小黑",2);
- System.out.println(hash);
- System.out.println(hash.containsKey("小黑"));
- System.out.println(hash.containsValue(1));
输出结果:
示例代码:
- HashMap hash=new HashMap();
- hash.put("小黑",1);
- hash.put("小黄",1);
- hash.put("小吕",1);
- hash.put("小黑",2);
- System.out.println(hash);
- System.out.println(hash.remove("小黑"));
- System.out.println(hash.remove("小吕", 1));
输出结果:
示例代码:
- HashMap hash=new HashMap();
- hash.put("小黑",1);
- hash.put("小黄",1);
- hash.put("小吕",1);
- hash.put("小黑",2);
- System.out.println(hash);
- for (Object o : hash.keySet()) {
- System.out.println(o);
- }
输出结果:
示例代码:
- HashMap hash=new HashMap();
- hash.put("小黑",1);
- hash.put("小黄",1);
- hash.put("小吕",1);
- hash.put("小黑",2);
- System.out.println(hash);
- for (Object value : hash.values()) {
- System.out.println(value);
- }
输出结果:
1. 是一个有序的key-value集合,它是通过红黑树实现的。该映射根据其键的自然顺序进行排序,或 者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
2. 是继承了AbstractMap,也是以key-value集合存储。实现了NavigableMap接口,可以支持一系列 的导航方法。 比如返回有序的key集合。实现了Cloneable克隆接口。实现了java.io.Serializable序列化接口。另 外,TreeMap是非线程同步的。
实例化TreeMap
- //实例化TreeMap,使用泛型
- Map<String,Integer> treemap1=new TreeMap<>();
- TreeMap<String,Integer> treemap2=new TreeMap<>();
- //不使用泛型
- TreeMap treemap=new TreeMap();
TreeMap应用
示例代码:
- TreeMap treemap=new TreeMap();
- treemap.put("小黑",1);
- treemap.put("小黄",1);
- treemap.put("小吕",1);
- treemap.put("小黑",2);
- System.out.println(treemap);
输出结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。