黑马程序员 集合
来源:互联网 发布:炫酷个人网站源码下载 编辑:程序博客网 时间:2024/05/08 19:42
------- android培训、java培训、期待与您交流! ----------
集合中存放的都是对象的地址
一、集合Collection共性操作 add() remove()
迭代器
for(Iterator it=Collection.iterator;it.hasNext:){
it.next();
}
二、List集合 有序的
通过角标操作
List集合迭代器 ListIterator 不可以通过集合对象的方法来操作集合中元素,通过迭代器来操作元素
遍历
for(ListIterator li=集合.listIterator;li.hasNext();){
Object obj=li.next();
li操作()
}
List
|-ArrayList 数组结构 查询快 增删慢
|-LinkedList 链表结构 增删快 查询慢
|-Vector 数组结构 线程同步
LinkedList模拟队列
package com.heima.demo;import java.util.LinkedList;public class LinkDemo {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubDuiLi dui = new DuiLi();dui.myadd("q");dui.myadd("w");dui.myadd("e");while(!dui.ismyEmtry()){System.out.println(dui.myget());}}}class DuiLi {private LinkedList li;DuiLi() {li = new LinkedList();}public void myadd(Object obj) {li.add(obj);}public Object myget() {return li.removeLast();}public boolean ismyEmtry() {return li.isEmpty();}}
如果ArrayList装的是自定义对象,判断对象是否相同要重写Object的equals方法;
三 set 无序的,元素不可以重复
HashSet 存放需要比较两次 1.HashCode值 2.对象是否一样
HashSet查询 删除等操作先依赖的是HashCode 再依赖equals
细说HashCode方法与equals方法的区别
1、如果两个对象相同,那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同 上面说的对象相同指的是用eqauls方法比较。
HashSet会先使用hashCode方法来比较,如果hashCode值相同那就再使用equals方法来比较
equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。举个例子,有个学生类,属性只有姓名和性别,那么我们可以认为只要姓名和性别相等,那么就说这2个对象是相等的。hashcode方法一般用户不会去调用
hashcode返回值是int equals返回值是boolean
TreeSet
1.可以自动排序 调用底层的compareTo方法
compareTo返回值是int,负整数、零或正整数,根据此对象是小于、等于还是大于指定对象
2.比较器
定义一个类实现Comparetor接口,覆盖Compare方法,返回值为int
当两种方式都存在时以比较器为准
当主要条件排序完成后要考虑次要条件排序
构造器Demo
class lencomrator implements Comparator{public int compare(Object o1, Object o2) {String s1=(String)o1;String s2=(String)o2;int num=new Integer(s1.length()).compareTo(new Integer(s2.length()));if(num==0)return s1.compareTo(s2);return num;}}
- 黑马程序员:集合类
- 黑马程序员 集合类
- 黑马程序员:集合框架
- 黑马程序员---集合
- 黑马程序员_java集合
- 黑马程序员_集合
- 黑马程序员 java 集合
- 黑马程序员-集合相关
- 黑马程序员,集合List
- 黑马程序员-List集合
- 黑马程序员_集合
- 黑马程序员-集合框架
- 黑马程序员-集合
- 黑马程序员-集合框架
- 黑马程序员-集合总结
- 黑马程序员-集合类
- 黑马程序员---集合,泛型
- 黑马程序员 集合学习
- c#
- Qt 之路 (08)—对话框(下)
- 任务调度和最小生成树
- 浅谈SQL Update返回影响行数的意义
- mysql alter 语句用法,添加、修改、删除字段等
- 黑马程序员 集合
- Codeforces Round #153 (Div. 2)
- 杂记之C语言之库函数assert
- ant 使用常见问题
- 学习札记: C++指向字符数组的指针
- Sql Server 中DateTime 的格式转换
- 3-sum
- 揭密SQL Server DATETIME数据类型
- 数据库存储过程使用左外连接left join