Java基础之集合基础
【摘要】 1.1 集合介绍集合提供一种存储空间可变的存储模型,存储的数据容量可以改变ArrayLis<>:可调整大小的数组实现<>:是一种特殊的数据类型,泛型可储存重复元素怎么使用呢在出现E的地方我们使用引用数据类型替换即可举例:ArrayList<String>、ArrayList<Student> 1.2 集合类型Collection 接口的接口 对象的集合(单列集合)List 接口:元素按进入...
1.1 集合介绍
- 集合提供一种存储空间可变的存储模型,存储的数据容量可以改变
- ArrayLis<>:
- 可调整大小的数组实现
- <>:是一种特殊的数据类型,泛型
- 可储存重复元素
- 怎么使用呢
- 在出现E的地方我们使用引用数据类型替换即可
- 举例:
ArrayList<String>、ArrayList<Student>
1.2 集合类型
Collection 接口的接口 对象的集合(单列集合)
- List 接口:元素按进入先后有序保存,可重复
- LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
- ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
- Vector 接口实现类 数组, 同步, 线程安全
- Stack 是Vector类的实现类
- Set 接口: 仅接收一次,不可重复,并做内部排序
- HashSet 使用hash表(数组)存储元素
- LinkedHashSet 链表维护元素的插入次序
- TreeSet 底层实现为二叉树,元素排好序
Map 接口 键值对的集合 (双列集合)
- Hashtable 接口实现类, 同步, 线程安全
- HashMap 接口实现类 ,没有同步, 线程不安全-
- LinkedHashMap 双向链表和哈希表实现
- WeakHashMap
- TreeMap 红黑树对所有的key进行排序
- IdentifyHashMap
1.3 集合与数组的区别
1、数组声明了它容纳的元素的类型,而集合不声明。
2、数组的长度是固定的,集合长度是可以改变的。
数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。
3、数组的存放的类型只能是一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。
4、数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查都是最快的。
5、集合以接口和类的形式存在,具有封装,继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂的操作,大大提高软件的开发效率。
- 共同点:都是存储数据的容器
- 不同点:数组的容量是固定的,集合的容量是可变的
1.4 ArrayList 构造方法和添加方法
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
//创建集合对象
ArrayList<String> array = new ArrayList<>();
System.out.println(array); //[]
//添加到集合末尾
array.add("hello");
array.add("word");
array.add("java");
System.out.println(array); //[hello, word, java]
//指定位置,添加元素
array.add(1,"javase");
System.out.println(array); //[hello, javase, word, java]
array.add(4,"javaee");
System.out.println(array); //[hello, javase, word, java, javaee]
array.add(6,"javaweb");
System.out.println(array); //IndexOutOfBoundsException,不能中间跳一个位置
}
}
1.5 ArrayList 常用方法
方法名 | 说明 |
---|---|
public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size() | 返回集合中元素的个数 |
- 范例:
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
//创建集合对象
ArrayList<String> array = new ArrayList<>();
System.out.println(array); //[]
//添加到集合末尾
array.add("hello");
array.add("word");
array.add("java");
System.out.println(array); //[hello, word, java]
//1,public boolean remove(Object o) 删除指定的元素,返回删除是否成功
// System.out.println(array.remove("hello")); //true; 集合变为[word, java]
// System.out.println(array.remove("javase")); //false; 集合变为[hello, word, java]
//2,public E remove(int index) 删除指定索引处的元素,返回被删除的元素
// System.out.println(array.remove(1)); //word,集合变为[hello, java]
//3,public E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
// System.out.println(array.set(1,"javase")); //word;集合变为[hello, javase, java]
//4,public E get(int index) 返回指定索引处的元素
// System.out.println(array.get(0)); //hello
// System.out.println(array.get(1)); //word
// System.out.println(array.get(2)); //java
//5,public int size() 返回集合中元素的个数
System.out.println(array.size()); //3
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)