java学习笔记——Collection集合接口
| NO | 方法名称 | 描述 |
| 1 | public boolean add(E e) | 向集合中保存数据 |
| 2 | public void clear() | 清空集合 |
| 3 | public boolean contains(Object o) | 查询集合之中是否有指定对象 ,该方法需要equals()方法支持 |
| 4 | containsAll(Collection<?> c) | |
| 5 | boolean remove(Object o) | |
| 6 | boolean removeAll(Collection<?> c) | |
| 7 | boolean isEmpty() | |
| 8 | int size() | |
| 9 | Object[] toArray() | |
| 10 | Iterator<E> iterator() | 为iterator接口实例化 |
在以上所给方法中使用最多的是add() 和 iterator()两个方法。其他方法使用较少。
开发中大部分不会去直接使用Collection 而是使用Collection下的两个接口:List(允许重复) Set(不允许重复)
- 允许重复的子接口:List(80%只用他)
- List对Collection所作的扩充主要有:
| NO | 方法名称 | 描述 |
| E get(int index) | 取得指定位置的对象 | |
| 2 |
E set(int index,E element) |
|
| 3 | ListIterator<E> listIterator() | 为listIterator实例化 |
接口完成后一定要使用子类,而常用的两个子类是:ArrayList Vector
ArrayList使用(90%)
import java.util.ArrayList;
import java.util.List;
public class ArrayListDemo {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("hello");
list.add("hello");
list.add("world!");
System.out.println(list);
}
}注意上面的代码可以使用get()方法循环输出。
以上代码使用的都是String类进行操作,下面使用自定义类进行操作(注意在自己定义的类中一定要重写equals()方法)。
import java.util.ArrayList;
import java.util.List;
import com.sun.org.apache.bcel.internal.generic.NEW;
class Person{
private String name;
private int age;
public Person(String name,int age) {
// TODO Auto-generated constructor stub
this.name=name;
this.age=age;
}
public String toString(){
return "姓名:"+name+",年龄:"+age+"\n";
}
public boolean equals(Object obj){
if(obj==null) return false;
if(!(obj instanceof Person)) return false;
if(this==obj) return true;
Person per=(Person)obj;
if(this.name.equals(per.name)&&this.age==per.age)
return true;
return false;
}
}
public class ArrayListDemo {
public static void main(String[] args) {
List<Person> list=new ArrayList<Person>();
list.add(new Person("张三", 20));
list.add(new Person("李四", 21));
list.add(new Person("王五", 23));
System.out.println(list.contains(new Person("王五", 23)));
list.remove(new Person("李四", 21));
System.out.println(list);
}
}
- 散列存放的子类:HashSet(90%)(散列即无序)
- TreeSet 会对用户加入的数据进行排序
- 如果用户自定义的类想要使用TreeSet进行顺序保存,必须在该类中实现java.lang.Comparable接口以区分大小。(待续)
java学习笔记——Collection集合接口的更多相关文章
- Java学习笔记之---集合
Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...
- Java学习笔记之---比较接口与抽象类
Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有 ...
- Java学习笔记之集合
集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...
- 【原】Java学习笔记026 - 集合
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...
- Java学习笔记--Collection和Collections的区别
转自 http://pengcqu.iteye.com/blog/492196 比较Collection 和Collections的区别. 1.java.util.Collection 是一个集合 ...
- java学习笔记之集合家族1
集合 集合介绍: 由于数组中存放对象,对对象操作起来不方便.java中有一类容器,专门用来存储对象. 集合与数组的区别: 1.数组的长度固定的,而集合长度时可变的 2.数组只能储存同一类型的元素,而且 ...
- java学习笔记之集合家族2
集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...
- [知了堂学习笔记]_集合接口list与集合接口set的区别
在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...
- Java学习笔记之——集合
集合是类,用来存储多个数据,有属性.方法 集合是一个可变数组,保存相同元素并且长度可变 1. 体系 (1)Collection:存储一个一个的值 Iterable: Iterable<T> ...
随机推荐
- linux下挂载U盘【转】
转自:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html 一.Linux挂载U盘:1.插入u盘到计算机,如果目前只插入了一个u ...
- linux缺页异常处理--内核空间【转】
转自:http://blog.csdn.net/vanbreaker/article/details/7867720 版权声明:本文为博主原创文章,未经博主允许不得转载. 缺页异常被触发通常有两种情况 ...
- C++11 lambda表达式(19篇C++11文章)
C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问. Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lam ...
- appium+python自动化24-滑动方法封装(swipe)【转载】
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...
- 基于最新友盟开发文档,集成友盟分享功能,赋demo
集成准备 获取Appkey 快速集成 获取SDK,页面截图: 下载后打开 导入jar和res 添加回调Activity 微信 在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivit ...
- IIS——MIME介绍与添加MIME类型
MIME(MultipurposeInternet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会 ...
- ubuntu 安装TensorFlow
1.安装pip $ sudo apt-get install python-pip python-dev 2.安装 TensorFlow for Python 2.7 # Ubuntu/Linux - ...
- 计蒜客 28319.Interesting Integers-类似斐波那契数列-递推思维题 (Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 I)
I. Interesting Integers 传送门 应该是叫思维题吧,反正敲一下脑壳才知道自己哪里写错了.要敢于暴力. 这个题的题意就是给你一个数,让你逆推出递推的最开始的两个数(假设一开始的两个 ...
- 分金币 Uva 11300
题意 给定N个人成环状坐,每个人初始分配Ai的金币,金币总数可以被N整除,每个人可以给左右相邻的人一定数量的金币使得最终每个人的金币数量相同,求转移数量最小的方案所转移的总金币数量. N<=10 ...
- 为Chrome多账户添加单独的快捷方式
Chrome的多账户功能非常好用,每个账户都有自己的独立的收藏夹.个人设置等.但是,当你要使用的账户不是默认账户时,必须经过一个切换的操作.本文将简单的介绍一个如何各账户添加快捷方式,从而实现直接登陆 ...