集合详解
Posted liduchang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合详解相关的知识,希望对你有一定的参考价值。
微信公众号:非科班的科班
关注可获得更多的Java教程。问题或建议,请公众号留言;
如果你觉得文章对你有帮助,欢迎赞赏[1]
集合
概念:
- 用来存放一组数据的数据结构
数组的缺点:
- 长度不可变
- 在前面增删数据,操作繁琐
集合提供了简便的数据操作方法
1.1 集合的继承结构
Collection 接口
|- List 接口
|- ArrayList
|- LinkedList
|- Set 接口
|- HashSet
|- TreeSet
Map 接口
|- HashMap
|- TreeMap
2 LinkedList
链表
- 两端效率高
方法:
add(数组)
添加数据
get(int i) //获取指定位置数据
remove(int i) //删除指定位置的数据,返回被删除的数据
remove(数据) //找到第一个相等数据删除,返回true,表示找到数据并删除,否则返回false
size() //数据的数量
iterator() //辅助创建迭代器实例的方法
两端操作数据的方法
addFirst(), addLast()
getFirst(), getLast()
removeFirst(), removeLast()
队列操作 Queue
offer() addLast()
peek() getFirst()
poll() removeFirst()
栈操作 Stack
push() addFirst()
pop() removeFirst()
练习代码:
package demo;
import java.util.LinkedList;
public class Test {
public static void main(String[] args) {
/*
* <> 泛型
* 限制集合中存放的数据类型
*
* 泛型和集合,不支持基本类型
* 可以使用包装类型
*/
LinkedList<String> list = new LinkedList<String>();
list.add("aaa");
list.add("ttt");
list.add("jjj");
list.add("111");
list.add("ccc");
list.add("kkk");
list.add("aaa");
list.add("xxx");
System.out.println(list.size());//数据量
System.out.println(list);
System.out.println(list.get(0));//访问第一个值
System.out.println(list.get(list.size()-1));//尾部值
System.out.println(list.remove(3));//删除下标3位置
System.out.println(list);
System.out.println(list.remove("aaa"));//删除aaa
System.out.println(list);
//双向链表下标遍历效率低
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
ArrayList
- 内部封装一个数组,用数组来存储数据
- 内部数组的默认初始容量 10,存满后 1.5倍增长
new ArrayList()
- 可以指定更大的初始容量,来提高效率
new ArrayList(1000)
- 访问任意位置效率高
- 增删数据,效率可能会降低
方法和 LinkedList 相同,但没有两端操作数据的方法
add()
get()
remove()
remove()
size()
iterator()
ArrayList 和 LinkedList
- 只在两端操作数据,选择 LinkedList
练习代码:
package demo;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(222);
list.add(333);
list.add(666);
list.add(444);
list.add(444);
list.add(888);
list.add(555);
System.out.println(list.size());
System.out.println(list);
System.out.println(list.get(3));
System.out.println(list.remove(3));
System.out.println(list);
System.out.println(
list.remove(Integer.valueOf(222)));
System.out.println(list);
//下标遍历
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//迭代器遍历
Iterator<Integer> it = list.iterator();
while(it.hasNext()) {
Integer a = it.next();
System.out.println(a);
}
}
}
微信公众号:非科班的科班
关注可获得更多的Java教程。问题或建议,请公众号留言;
如果你觉得文章对你有帮助,欢迎赞赏[1]
以上是关于集合详解的主要内容,如果未能解决你的问题,请参考以下文章