集合的知识点梳理(List,Set,不包含泛型)
1.集合的常用框架
根据数据结构划分:
Collection
list set
ArraryList ,LinkList,Vector TreeSet,HashSet
2.集合的存储
都是存储的对象的引用。
二:程序--Collection的公共方法
1.Collection的公共方法(常用)
增删查该
import java.util.ArrayList; public class Test39 { public static void pubTest(){
ArrayList a1=new ArrayList();
a1.add("java1");
a1.add("java2");
a1.add("java3");
System.out.println(a1);
System.out.println(a1.size());
System.out.println(a1.isEmpty());
a1.remove("java1");
System.out.println(a1);
System.out.println(a1.contains("java3"));
}
public static void pubTest2(){
ArrayList a1=new ArrayList();
a1.add("java1");
a1.add("java2");
a1.add("java3");
ArrayList a2=new ArrayList();
a2.add("java1");
a2.add("java2");
a2.add("java4");
//a1.retainAll(a2);
//System.out.println(a1);//java1,java2
a1.removeAll(a2);
System.out.println(a1);//java3 }
public static void main(String[] args) {
//pubTest();
pubTest2();
}
}
2.Collection的常用方法(迭代器)
import java.util.ArrayList;
import java.util.Iterator; public class Test40 { public static void main(String[] args) {
ArrayList a1=new ArrayList();
a1.add("java1");
a1.add("java2");
a1.add("java3");
Iterator it=a1.iterator();
while(it.hasNext()){
System.out.println(it.next());
} for(Iterator i=a1.iterator();i.hasNext();){
System.out.println(i.next());
}
} }
三:程序--ArrayList
1.ArrayList 增删该查方法
add(index,E)
addAll(index,E)
remove(index);
set(index,E)
get(index);
iterator();
subList(head,tail);
2.程序
import java.util.ArrayList; public class Test41 { public static void main(String[] args) {
ArrayList a2=new ArrayList();
a2.add(0, "java0");
a2.add(1, "java1");
a2.add(2, "java2");
a2.add(3, "java3");
System.out.println(a2);
a2.remove(3);
System.out.println(a2);
a2.set(2, "java02");
System.out.println(a2);
System.out.println(a2.get(0));
System.out.println(a2.subList(0, 2));
}
}
3.附加的方法
indexOf(E)
4.程序
public static void main(String[] args){
ArrayList a2=new ArrayList();
a2.add(0, "java0");
a2.add(1, "java1");
a2.add(2, "java2");
System.out.println(a2.indexOf("java1"));
}
5.程序--ArrayList特有的迭代器listIterator
import java.util.ArrayList;
import java.util.ListIterator; public class Test42 { public static void main(String[] args) {
listT();
} private static void listT() {
ArrayList a2=new ArrayList();
a2.add(0, "java0");
a2.add(1, "java1");
a2.add(2, "java2");
a2.add(3, "java3");
//System.out.println(a2);
ListIterator lt=a2.listIterator();
while(lt.hasNext()){
System.out.print(lt.next());
}
System.out.println();
while(lt.hasPrevious()){
System.out.print(lt.previous());
}
System.out.println();
while(lt.hasNext()){
Object obj=lt.next();
if(obj.equals("java2")){
lt.remove();
}
}
System.out.println(a2);
} }
四:程序--Vector
1.
import java.util.Enumeration;
import java.util.Vector; public class Test43 { public static void main(String[] args) {
Vector v=new Vector();
v.add("java1");
v.add("java2");
v.add("java3");
Enumeration en=v.elements();
while(en.hasMoreElements()){
System.out.println(en.nextElement());
}
} }
五:程序--LinkList
1.
import java.util.LinkedList; public class Test44 { public static void main(String[] args) {
fir();
}
public static void fir(){
LinkedList l=new LinkedList();
l.addFirst("java1");
l.addFirst("java2");
System.out.println(l);
l.addLast("java3");
System.out.println(l);
System.out.println(l.getFirst());
System.out.println(l.getLast());
System.out.println(l.removeFirst());//return last,then remove
System.out.println(l.size());
}
}
六:set
1.概述
set的功能和Collection一致。
七:程序--HashSet的元素唯一性
先判断对象的hashcode,如果相同,在判断是否相同,如果值不同,在原有对象之后依次顺延。
import java.util.HashSet;
import java.util.Iterator; public class Test45 {
public static void main(String[] args) {
hashs();
}
private static void hashs() {
HashSet h=new HashSet();
h.add(new per(1,"zhangsan"));
h.add(new per(2,"lisi"));
h.add(new per(3,"wangwu"));
h.add(new per(2,"lisi"));
Iterator it=h.iterator();
while(it.hasNext()){
per p=(per)it.next();
System.out.println(p.getName()+".."+p.getNum());
}
}
}
class per{
private int num;
private String name;
per(){}
per(int num,String name){
this.num=num;
this.name=name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int hashCode() {
return name.hashCode()+num;
}
public boolean equals(Object obj) {
if(!(obj instanceof per)){
return false;
}
per p=(per)obj;
return this.name.equals(name)&&this.num==p.num;
} }
八:TreeSet
1.程序--按照自然顺序进行排序
import java.util.Iterator;
import java.util.TreeSet; public class Test46 {
public static void main(String[] args) {
TreeSet t=new TreeSet();
t.add("abdd");
t.add("fff");
t.add("ad");
t.add("aaa");
Iterator it=t.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
2.程序--对对象自定义排序(让对象具有比较性)
import java.util.Iterator;
import java.util.TreeSet; public class Test47 { public static void main(String[] args) {
TreeSet t=new TreeSet();
t.add(new student("zhangsan",19));
t.add(new student("lisi",19));
t.add(new student("zhaoliu",21));
t.add(new student("lisi",19));
t.add(new student("zhangsan",18));
Iterator it=t.iterator();
while(it.hasNext()){
student st=(student)it.next();
System.out.println(st.getname()+"....."+st.getage());
}
} }
class student implements Comparable{
private String name;
private int age;
student(String name,int age){
this.name=name;
this.age=age;
}
public int getage(){
return age;
}
public String getname(){
return name;
}
public int compareTo(Object obj) {
if(!(obj instanceof student)){
throw new RuntimeException("do not stu");
}
student stu=(student)obj;
if(this.age>stu.getage()){
return 1;
}
if(this.age==stu.getage()){
return this.name.compareTo(stu.getname());
}
return -1;
}
}
3.程序--让集合具有比较性(比较器)
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet; public class Test48 { public static void main(String[] args) {
TreeSet t=new TreeSet(new mycomarator());
t.add(new student2("zhangsan",19));
t.add(new student2("lisi",19));
t.add(new student2("zhaoliu",21));
t.add(new student2("lisi",19));
t.add(new student2("zhangsan",18));
Iterator it=t.iterator();
while(it.hasNext()){
student2 st=(student2)it.next();
System.out.println(st.getname()+"....."+st.getage());
}
} }
class mycomarator implements Comparator{
public int compare(Object o1, Object o2) {
student2 st1=(student2)o1;
student2 st2=(student2)o2;
int num=st1.getname().compareTo(st2.getname());
if(num==0){
return new Integer(st1.getage()).compareTo(new Integer(st2.getage()));
}
return num;
} }
class student2 implements Comparable{
private String name;
private int age;
student2(String name,int age){
this.name=name;
this.age=age;
}
public int getage(){
return age;
}
public String getname(){
return name;
}
public int compareTo(Object obj) {
if(!(obj instanceof student2)){
throw new RuntimeException("do not stu");
}
student2 stu=(student2)obj;
if(this.age>stu.getage()){
return 1;
}
if(this.age==stu.getage()){
return this.name.compareTo(stu.getname());
}
return -1;
}
}
集合的知识点梳理(List,Set,不包含泛型)的更多相关文章
- java中关于集合的知识点梳理
一:概述 1.集合的特点 只存储对象,集合长度是可变的,集合可以存储不同类型的对象. 2.集合框架 Collection List | | Set ArrayList Linked ...
- Collection集合与Map集合的知识点梳理
在Java中集合分为单列集合(Collection)与双列集合(Map),本文主要对两种集合的常用实现类作一介绍,如果有不足,恳请指教更正. 1.前言 说到集合肯定要介绍下集合的概念与特点:集合是一个 ...
- [独孤九剑]Oracle知识点梳理(七)数据库常用对象之Cursor
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(六)数据库常用对象之Procedure、function、Sequence
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- [独孤九剑]Oracle知识点梳理(一)表空间、用户
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- Javascript重要知识点梳理
Javascript重要知识点梳理 一.Javascript流程控制 js中常用的数据类型 var关键字的使用 if – else if – else switch while for 二.Javas ...
- Memcache知识点梳理
Memcache知识点梳理 Memcached概念: Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HAS ...
随机推荐
- uva494 Kindergarten Counting Game
#include<bits/stdc++.h>using namespace std;int main(){ int n=0; char a; int flag=1; while((sca ...
- 向数据库中添加内容 manageStdInfo.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="manageStdInfo.as ...
- JVM的启动流程
JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂 ...
- Extjs3.3 + swfUpload2.2 实现多文件上传组件
[该上传组件已经停止更新,该上传组件已经在项目中使用.在使用过程中如果发现bug请大家回复此贴.2011-02-27] 主要是为了用swfUpload实现上传,为了新鲜好玩. 理解swfUpload可 ...
- [Java] StringBuffer类
http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html 注: StringBuffer类和String一样,也用来代表字符串, ...
- 用C语言实现素数筛法获取一亿(100000000)以内的全部素数
具体筛法是:先把n个自然数按次序排列起来.1不是质数,也不是合数,要划去.第二个数2是质数留下来,而把2后面所有能被2整除的数都划去.2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数 ...
- DTD约束的校验工具安装及检验(Iexmltls工具)
通过打开我们写的dtd约束文档,我们可以看到,在我们不按规定的格式打开xml时并不能检验出错误.此时我们可以借助软件来帮助我们校验. Iexmltls是一个在IE浏览器下安装的用于检验xml约束是否正 ...
- PHP将在对象被销毁前调用这个函数.它称为析构函数
-构造函数和析构函数 如果你在一个类中声明一个函数,命名为__construct,这个函数将被当成是一个构造函数并在建立一个对象实例时被执行.清楚地说,__是两个下划线.就像其它任何函数一样,构造函数 ...
- JavaWEB入门
首先,我们已知的是Web资源分为:静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变.常用的静态web开发技术即为html:动态web 资源:指web页面中供人们浏览的数据是 ...
- MAC环境下 nodejs 4.5.0 卸载
MAC 环境下,我之前的删除 node 环境如果是用brew 安装的 node.js 4.4 之前的版本.可以网上参考其他方法,我之前的帖子也有之前的删除方法.参考帖子: http://www.cnb ...