[黑马程序员](第10-15天)集合类(中)
来源:互联网 发布:听相声小品软件 编辑:程序博客网 时间:2024/05/16 05:54
------- android培训、java培训、期待与您交流! ----------两大类:
Collection--单列集合类的根接口
Map--双列集合类的根接口
collection分为List和Set:
list:ArrayList,LinkedList,Vector
Set:HashSet(LinkedHashSet),TreeSet
collection常用方法10个:
boolean7个:
boolean add(Object o)
boolean addAll(Collection c)
boolean remove(Object o)
boolean removeAll(Collection c)
boolean isEmpty()
boolean contains(Object o)
boolean containsAll(Collection c)
void1个:
void clear()
Iterator1个:
Iterator iterator()
int1个:
int size()
List作为collection的接口,有几个常用方法:
boolean addAll(int index, Collection c)
void add(int index, Object element)
Object get(int index)
Object remove(int index)
Object set(int index, Object element)
int indexOf(Object c)
int lastIndexOf(Object c)
List subList(int fromIndex,int toIndex)
ArrayList作为List的一个实现类,是一个长度可变的数组
public class Example01 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("m");
list.add("o");
list.add("r");
System.out.println(list.get[0]);
System.out.println(list.size());
}
}
LinkedList:
具有双向循环链表结构,所以它具备增删元素效率高的特点
它有一些特有的方法:
void add(int index, E element)
void addFirst(Object o)
void addLast(Object o)
Object getFirst()
Object getLast()
Object removeFirst()
Object removeLast()---移除并返回此列表的最后一个元素
public class Example02{
public void static main(String[] args){
LinkedList list = new LinkedList();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
System.out.println(list.toString()); //取出并打印集合里的元素
list.add(1,"jj");
list.addFirst("aa");
}
}
Iterator接口:
主要是hasNext()方法和next()方法
public class Example03{
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aaaaaaaaaaaa");
list.add("bbbbbbbbbbb");
list.add("ccccccccccccc");
list.add("dddddddddd");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Object o = iterator.next();
System.out.println(o);
}
}
}
jdk5.0新特性---foreach循环
格式:
for(容器内变量类型 临时变量 : 容器变量){
}
foreach的局限性:
只能访问,而不能修改
for循环和iterator迭代都能实现修改(但迭代器的修改要注意方法)
class Example04{
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aa");
list.add("cc");
for(int i = 0 ; i < 5 ; i ++){
list.add(i);
}
for(String str: list){
str = "ddd";
}
}
}
class Example05 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Iterator i = list.iterator();
while(i.hasNext()){
Object o = i.next();
if("bbb".equals(o)){
list.remove(o);
}
}
}
}
这样用list直接删除会报错,正确的删除方法:
class Example06 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Iterator i = list.iterator();
while(i.hasNext()){
Object o =i.next();
if("bbb".equals(o)){
list.remove(o);
break;
}
}
}
}
或者用iterator本身的方法i.remove()
if("bbb".equals(o)){
i.remove();
}
ListIterator接口:
主要是多了三个方法:
hasPrevious();
previous();
add(Object o);---类似iterator的remove();
实例化时,要传一个int参数,指定开始迭代的起始位置
而且,ListIterator只能用于List集合
public class Example08 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("feriosa")
list.add("max");
list.add("nux");
ListIterator it = list.listIterator(list.size());
while(it.hasPrevious()){
Object o = it.previous();
}
}
}
Enumeration---Iterator的前身(用于Vector集合)
三行重要代码:
Enumeration e = vector.elements();
while(e.hasMoreElements()){
Object o = e.nextElements();
}
Collection--单列集合类的根接口
Map--双列集合类的根接口
collection分为List和Set:
list:ArrayList,LinkedList,Vector
Set:HashSet(LinkedHashSet),TreeSet
collection常用方法10个:
boolean7个:
boolean add(Object o)
boolean addAll(Collection c)
boolean remove(Object o)
boolean removeAll(Collection c)
boolean isEmpty()
boolean contains(Object o)
boolean containsAll(Collection c)
void1个:
void clear()
Iterator1个:
Iterator iterator()
int1个:
int size()
List作为collection的接口,有几个常用方法:
boolean addAll(int index, Collection c)
void add(int index, Object element)
Object get(int index)
Object remove(int index)
Object set(int index, Object element)
int indexOf(Object c)
int lastIndexOf(Object c)
List subList(int fromIndex,int toIndex)
ArrayList作为List的一个实现类,是一个长度可变的数组
public class Example01 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("m");
list.add("o");
list.add("r");
System.out.println(list.get[0]);
System.out.println(list.size());
}
}
LinkedList:
具有双向循环链表结构,所以它具备增删元素效率高的特点
它有一些特有的方法:
void add(int index, E element)
void addFirst(Object o)
void addLast(Object o)
Object getFirst()
Object getLast()
Object removeFirst()
Object removeLast()---移除并返回此列表的最后一个元素
public class Example02{
public void static main(String[] args){
LinkedList list = new LinkedList();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
System.out.println(list.toString()); //取出并打印集合里的元素
list.add(1,"jj");
list.addFirst("aa");
}
}
Iterator接口:
主要是hasNext()方法和next()方法
public class Example03{
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aaaaaaaaaaaa");
list.add("bbbbbbbbbbb");
list.add("ccccccccccccc");
list.add("dddddddddd");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Object o = iterator.next();
System.out.println(o);
}
}
}
jdk5.0新特性---foreach循环
格式:
for(容器内变量类型 临时变量 : 容器变量){
}
foreach的局限性:
只能访问,而不能修改
for循环和iterator迭代都能实现修改(但迭代器的修改要注意方法)
class Example04{
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aa");
list.add("cc");
for(int i = 0 ; i < 5 ; i ++){
list.add(i);
}
for(String str: list){
str = "ddd";
}
}
}
class Example05 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Iterator i = list.iterator();
while(i.hasNext()){
Object o = i.next();
if("bbb".equals(o)){
list.remove(o);
}
}
}
}
这样用list直接删除会报错,正确的删除方法:
class Example06 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Iterator i = list.iterator();
while(i.hasNext()){
Object o =i.next();
if("bbb".equals(o)){
list.remove(o);
break;
}
}
}
}
或者用iterator本身的方法i.remove()
if("bbb".equals(o)){
i.remove();
}
ListIterator接口:
主要是多了三个方法:
hasPrevious();
previous();
add(Object o);---类似iterator的remove();
实例化时,要传一个int参数,指定开始迭代的起始位置
而且,ListIterator只能用于List集合
public class Example08 {
public void static main(String[] args){
ArrayList list = new ArrayList();
list.add("feriosa")
list.add("max");
list.add("nux");
ListIterator it = list.listIterator(list.size());
while(it.hasPrevious()){
Object o = it.previous();
}
}
}
Enumeration---Iterator的前身(用于Vector集合)
三行重要代码:
Enumeration e = vector.elements();
while(e.hasMoreElements()){
Object o = e.nextElements();
}
0 0
- [黑马程序员](第10-15天)集合类(中)
- [黑马程序员](第10-15天)集合类(上)
- [黑马程序员](第10-15天)集合类(下)
- 黑马程序员 --- 第15天集合(二)_Map
- 黑马程序员------第10天笔记(集合框架)
- 黑马程序员 + 第15天 集合
- 黑马程序员-第十四天(集合框架)
- 黑马程序员——第15天——(API)集合框架(TreeSet,泛型)
- 黑马程序员——java基础---集合(第15天)
- 黑马程序员_Java第14天知识总结_集合类(集合框架)_Collection_迭代器_List_Set_HashSet
- 黑马程序员——java中容器(集合类)
- 黑马程序员——Java基础---集合(TreeSet、泛型)--第15天--第180-192集
- 黑马程序员 + 第14天 集合
- 黑马程序员 + 第16天 Map集合
- 黑马程序员 —— JavaAPI_集合框架 (第十四天)
- 黑马程序员-----集合框架知识小节1(第一篇)
- 黑马程序员——第九天(集合框架)
- 黑马程序员——Java基础---集合(Map集合)--第16天--第193-201集
- iOS中setNeedsDisplay、setNeedsLayout的作用
- 队列小记四之队列的另一种实现
- Qt运行一个实例进程-3种方式简介
- fianl 抽象类 接口
- 解决iframe出现两个滚动条的问题
- [黑马程序员](第10-15天)集合类(中)
- hdu5288OO’s Sequence
- linux命令
- unity3d 游戏对象消失三种方法的区别(enabled/Destroy/active)
- ios – 使用UINib加载xib文件实现UITableViewCell
- Ansible安装过程中遇到过的问题
- Java基础语法(二)(基本类型的转换,运算符)
- hdoj-2277-Change the ball【规律】
- java线程概述