JAVA集合学习
2015-07-03 11:19
525 查看
JAVA中有几种常用的集合类。分别是List,Set,Map等
提示:Eclipse中自动导入包的快捷键 Ctrl+Shift+O
一、List类
父接口:该类是Collection集合接口的子接口。
特点:List类是有序的,可以有重复的元素。
分类:它也有两个子接口,分别是ArrayList(动态数组)、LinkedList(链表、队列、堆栈)
常用方法:
1.构造方法。eg:ArrayList<Integer> al = new ArrayList<Integer>();//Integer可用其他类替换。
2.添加元素add(Object) addAll(object集合).eg:al.add(3);
3.删除元素remove(Object) removeAll(object集合).eg:al.remove(4);
4.获取元素get(index)eg:get(0);
等其他的方法;
二、Set类
父接口:Coleection
特点:无序,不可重复
子接口:HashSet类,以哈希表的形式存放元素,插入删除速度很快;TreeSet类,
方法:构造方法,Set是抽象类,在构造新对象时需要申明为HashSet eg:Set<String> set = new HashSet<String>();
add,remove,...遍历时可用:eg:
添加元素:
等等其他方法。
三、Map类
子接口:HashMap类,TreeMap
四、Table类
子接口:HashTable类
五、集合适用场景
对于查找和删除较为频繁,且元素数量较多的应用,Set或Map是更好的选择;
ArrayList适用于通过为位置来读取元素的场景;
LinkedList 适用于要头尾操作或插入指定位置的场景;
Vector 适用于要线程安全的ArrayList的场景;
Stack 适用于线程安全的LIFO场景;
HashSet 适用于对排序没有要求的非重复元素的存放;
TreeSet 适用于要排序的非重复元素的存放;
HashMap 适用于大部分key-value的存取场景;
TreeMap 适用于需排序存放的key-value场景。
提示:Eclipse中自动导入包的快捷键 Ctrl+Shift+O
一、List类
父接口:该类是Collection集合接口的子接口。
特点:List类是有序的,可以有重复的元素。
分类:它也有两个子接口,分别是ArrayList(动态数组)、LinkedList(链表、队列、堆栈)
常用方法:
1.构造方法。eg:ArrayList<Integer> al = new ArrayList<Integer>();//Integer可用其他类替换。
2.添加元素add(Object) addAll(object集合).eg:al.add(3);
3.删除元素remove(Object) removeAll(object集合).eg:al.remove(4);
4.获取元素get(index)eg:get(0);
等其他的方法;
二、Set类
父接口:Coleection
特点:无序,不可重复
子接口:HashSet类,以哈希表的形式存放元素,插入删除速度很快;TreeSet类,
方法:构造方法,Set是抽象类,在构造新对象时需要申明为HashSet eg:Set<String> set = new HashSet<String>();
add,remove,...遍历时可用:eg:
Set<String> set = new HashSet<String>(); for(String s : set){ //TODO }
添加元素:
set.add("English");删除元素:
<span style="font-size:18px;"><strong>set.remove("HanYu")</strong></span>
等等其他方法。
三、Map类
子接口:HashMap类,TreeMap
四、Table类
子接口:HashTable类
五、集合适用场景
对于查找和删除较为频繁,且元素数量较多的应用,Set或Map是更好的选择;
ArrayList适用于通过为位置来读取元素的场景;
LinkedList 适用于要头尾操作或插入指定位置的场景;
Vector 适用于要线程安全的ArrayList的场景;
Stack 适用于线程安全的LIFO场景;
HashSet 适用于对排序没有要求的非重复元素的存放;
TreeSet 适用于要排序的非重复元素的存放;
HashMap 适用于大部分key-value的存取场景;
TreeMap 适用于需排序存放的key-value场景。
相关文章推荐
- java 转发和重定向的区别
- java中startsWith与endsWith的用法
- java实现定时任务的三种方法
- MyEclipse每次修改js有另一种部署
- Java调用net的webservice故障排除实战分享
- Java NIO原理图文分析及代码实现
- 在eclipse中android private libraries中关联javadoc
- drools的JavaDialect异常
- drools的JavaDialect异常
- Javaweb引入讯飞语音合成so库
- Spring注解@Component、@Repository、@Service、@Controller区别
- java 参数传递
- struts2学习笔记(四)--获取Session和request方法
- java解释XML
- java中的引用类型概念
- Selenium_WebDriver自动登录BBS找到特定帖子回复指定内容领铜钱(xpath初练手)_Java
- Gson转换Json串为对象报java.lang.NoClassDefFoundError
- Java定时器的使用(Timer)
- java链接Hive与Impala经验总结
- java中如何判断一个字符是中文字符