Collectioni List 集合
来源:互联网 发布:软件成本估算方法 编辑:程序博客网 时间:2024/06/15 08:54
1.
集合和数组的区别?
1)长度的区别:
数组:长度是固定的
集合:可变的!
2)存储数据类型的区别:
数组:可以存储基本数据类型,还用引用数据类型
集合:只能存储引用类型
3)存储类型的元素的区别:
集合:可以多种类型的元素:水+可乐+啤酒...
Collection的添加功能:
boolean add(E e):添加功能
获取功能:
Object[] toArray();返回包含此 collection 中所有元素的数组。
public static void main(String[] args) {
Collection c = new ArrayList();
Student s1 = new Student(22, "gao");
Student s2 = new Student(11,"wei");
c.add(s1);
c.add(s2);
System.out.println(c);//输出[Student [age=22, name=gao], Student [age=11, name=wei]]
//遍历集合 需要将集合转换成数组
Object[] o = c.toArray();
Student s = (Student) o[1];//输出Student [age=11, name=wei]
System.out.println(s);
}
3.
Collection:代表的是顶层次的一个根接口!
jdk不提供此接口的任何直接实现,而是子接口的具体类进行实现!
和添加功能相关的方法:
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合中的元素
和删除功能相关的方法:
boolean remove(Object o):删除指定的元素
boolean removeAll(Collection c):删除一个集合中的元素(删除一个元素)
void clear():删除一个集合中的所有元素
和判断功能相关的方法:
boolean contains(Object o):判断该集合中是否包含指定的元素
boolean containsAll(Collection c):判断是否包含一个集合中的元素(包含所有元素算包含)
boolean isEmpty():判断集合是否为空
长度功能:
int size()
面试题:数组中有没有length()方法?String类有没有length()方法?集合中有没有length()方法?
数组:length属性
字符串String:length()
集合:size()
Iterator<E> iterator():集合的专有迭代遍历方式
交集功能:
boolean retainAll(Collection c):对一个集合取交集(思考:返回值类型表达的是什么意思?交集的元素去哪里?)
集合的转换功能:
Object[] toArray():将集合转换数组
4.
迭代器
4.1 迭代器原理
5
List是Collection的一个子接口,ArrayList是List的实现类
List集合是一个有序的集合,是可以有重复的元素
有序:指的是元素存储和取出是一致的!(存储的是什么,取出的就是什么)
Set集合:是另一个子接口:元素不能重复,无序
5.2
List集合的特有功能:
添加功能:
void add(int index,Object element):在指定位置添加指定的元素
获取功能:
Object get(int index):获取指定位置的元素
删除功能:
Object remove(int index):删除指定位置的元素,返回的就是删除的元素
5.3
使用三种方法遍历List集合
5.4
需求:给List存储字符串,判断如果这个字符串是"world",然后给集合中添加一个新的 字符串"java
//1)两种解决并发修改异常的方式:
//使用迭代器遍历,迭代器添加,Iterator接口没有添加功能,所有使用列表迭代器:ListIterator
//获取列表迭代器
集合和数组的区别?
1)长度的区别:
数组:长度是固定的
集合:可变的!
2)存储数据类型的区别:
数组:可以存储基本数据类型,还用引用数据类型
集合:只能存储引用类型
3)存储类型的元素的区别:
集合:可以多种类型的元素:水+可乐+啤酒...
数组:存储的是同一种数据类型的元素:水杯中的水
基本类型:共八种 四种整形
byte 一字节
short 二字节
int 四字节
long 8字节
两种浮点类型
fioat 4字节
double 8字节
一种字符单元
char 2字节
一种真值类型
public static void main(String[] args) {Collection c = new ArrayList(); Student s1 = new Student(22, "gao");Student s2 = new Student(11,"wei");c.add(s1);c.add(s2);System.out.println(c);//输出[Student [age=22, name=gao], Student [age=11, name=wei]]//遍历集合 需要将集合转换成数组Object[] o = c.toArray();Student s = (Student) o[1];//输出Student [age=11, name=wei]System.out.println(s);}
2.
Collection的添加功能:
boolean add(E e):添加功能
获取功能:
Object[] toArray();返回包含此 collection 中所有元素的数组。
public static void main(String[] args) {Collection c = new ArrayList(); Student s1 = new Student(22, "gao");Student s2 = new Student(11,"wei");c.add(s1);c.add(s2);System.out.println(c);//输出[Student [age=22, name=gao], Student [age=11, name=wei]]//遍历集合 需要将集合转换成数组Object[] o = c.toArray();Student s = (Student) o[1];//输出Student [age=11, name=wei]System.out.println(s);}
public static void main(String[] args) {
Collection c = new ArrayList();
Student s1 = new Student(22, "gao");
Student s2 = new Student(11,"wei");
c.add(s1);
c.add(s2);
System.out.println(c);//输出[Student [age=22, name=gao], Student [age=11, name=wei]]
//遍历集合 需要将集合转换成数组
Object[] o = c.toArray();
Student s = (Student) o[1];//输出Student [age=11, name=wei]
System.out.println(s);
}
3.
Collection:代表的是顶层次的一个根接口!
jdk不提供此接口的任何直接实现,而是子接口的具体类进行实现!
和添加功能相关的方法:
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合中的元素
和删除功能相关的方法:
boolean remove(Object o):删除指定的元素
boolean removeAll(Collection c):删除一个集合中的元素(删除一个元素)
void clear():删除一个集合中的所有元素
和判断功能相关的方法:
boolean contains(Object o):判断该集合中是否包含指定的元素
boolean containsAll(Collection c):判断是否包含一个集合中的元素(包含所有元素算包含)
boolean isEmpty():判断集合是否为空
长度功能:
int size()
面试题:数组中有没有length()方法?String类有没有length()方法?集合中有没有length()方法?
数组:length属性
字符串String:length()
集合:size()
Iterator<E> iterator():集合的专有迭代遍历方式
交集功能:
boolean retainAll(Collection c):对一个集合取交集(思考:返回值类型表达的是什么意思?交集的元素去哪里?)
集合的转换功能:
Object[] toArray():将集合转换数组
4.
迭代器
4.1 迭代器原理
interface Iterator{boolean hasNext() ;Object next();}public interface Iterable {Iterator iterator();}public interface Collection extends Iterable{ public Iterator<E> iterator() { return new Itr(); //Itr:类 } //具体的类 :内部类的另一种形式 private class Itr implements Iterator { //Itr是Iterator接口的子实现类 public boolean hasNext() {//重写了hasNext() return cursor != size; } public Object next() { } }}
collection c = new ArrayList();c.add("hello");c.add("world");c.add("java"); Iterator it = c.iterator();//本应该是Iterator it = new Itr() ;而 c.iterator()返回值是new Itr()//接口多态(开发中经常用)while(it.hasNext){String s = (String)it.next();System.out.println(s);}
5
List是Collection的一个子接口,ArrayList是List的实现类
List集合是一个有序的集合,是可以有重复的元素
有序:指的是元素存储和取出是一致的!(存储的是什么,取出的就是什么)
Set集合:是另一个子接口:元素不能重复,无序
5.2
List集合的特有功能:
添加功能:
void add(int index,Object element):在指定位置添加指定的元素
获取功能:
Object get(int index):获取指定位置的元素
删除功能:
Object remove(int index):删除指定位置的元素,返回的就是删除的元素
5.3
使用三种方法遍历List集合
public static void main(String[] args) {List l = new ArrayList();l.add("hello");l.add("ha");l.add("fenghui");Iterator i = l.iterator();while(i.hasNext()){String s = (String) i.next();System.out.println(s);}for(int x = 0; x<l.size(); x++){Object s1 = l.get(x);System.out.println(s1);}ListIterator ii = l.listIterator();while(ii.hasNext()){Object s2 = ii.next();System.out.println(s2);;}}}
5.4
需求:给List存储字符串,判断如果这个字符串是"world",然后给集合中添加一个新的 字符串"java
//1)两种解决并发修改异常的方式:
//使用迭代器遍历,迭代器添加,Iterator接口没有添加功能,所有使用列表迭代器:ListIterator
//获取列表迭代器
ListIterator lit = list.listIterator() ;while(lit.hasNext()){String s = (String) lit.next() ;//判断,迭代器添加if(s.equals("world")){//列表迭代器的特有功能lit.add("javaee");//插入元素:在指定元素插入新的元素}}System.out.println("list:"+list);//2)使用集合遍历,使用集合添加for(int x = 0 ; x < list.size() ; x ++){String s = (String) list.get(x) ;//判断有world,采用集合添加,在末尾添加if(s.equals("world")){list.add("javaee") ;}}System.out.println("list:"+list);}}
阅读全文
0 0
- Collectioni List 集合
- list 集合
- List集合
- List集合
- List集合
- List集合
- List集合
- list 集合
- List集合
- 集合 --- List
- 集合(List)
- List集合
- 集合-List
- List集合
- list集合
- List集合
- List集合
- List集合
- 基于jwt的token验证
- 基础部分
- PAT basic 1033
- PAT basic 1034
- 2017-08-07 NOIP模拟赛
- Collectioni List 集合
- PAT basic 1035
- PAT basic 1036
- Spring-引用Bean的属性值
- PAT basic 1037
- 安卓自定义相机,使用系统相机教程源码都有
- H5-----null和undefined的区别?
- 使用phantomjs.exe将网页链接保存成pdf、png等文件
- PAT basic 1038