集合的知识点梳理(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 ...
随机推荐
- 10688 XYM-AC之路
Description 在华农的众ACMers中,有着一位家喻户晓.人称一鸣惊人的DP神牛—XYM.由于XYM太出名了,他的仰慕者决定给XYM写一部个人传奇以传承他光辉的AC之路. 为了使故事更加真实 ...
- 5分钟上手写ECharts的第一个图表
网址:http://echarts.baidu.com/doc/start.html 架构特性 http://echarts.baidu.com/doc/feature.html | 架构 提供商业产 ...
- WPF 文本框添加水印效果
有的时候我们需要为我们的WPF文本框TextBox控件添加一个显示水印的效果来增强用户体验,比如登陆的时候提示输入用户名,输入密码等情形.如下图所示: 这个时候我们除了可以修改TextBox控件的控件 ...
- HangOver
HangOver Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- POJ 3373 Changing Digits(DP)
题目链接 记录路径的DP,看的别人的思路.自己写的也不好,时间居然2000+,中间的取余可以打个表,优化一下. 写的各种错,导致wa很多次,写了一下午,自己构造数据,终于发现了最后一个bug. dp[ ...
- BZOJ3925: [Zjoi2015]地震后的幻想乡
Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...
- 8.20 css样式表:样式分类,选择器。样式属性,
样式表分类: 1.内联样式表, 和html联合显示,例:<p style="font-size:14px;">内联样式表</p> 2.内嵌样式表 作为一个独 ...
- php 的curl 模拟登陆
做一个类似这样的web 应用. 1,解决掉验证码 其实这是正方的一个小bug,当我们进入登陆界面时,浏览器会去请求服务器,服务器会生成一个验证码图片.如果我们不去请求这个图片,那么正方后台也不会生成相 ...
- HOWTO:制作 Windows 7 加速部署映像(作者:苏繁)
加速部署映像 - 也就是我们通常说的系统模板,通常我们为了提高 Windows 的安装速度,会事先制作一套包含驱动.应用软件.补丁程序以及自定义设置的标准化系统.这样我们在使用该加速部署映像完成安装后 ...
- 各分支Linux的镜像下载地址
https://openstack.redhat.com/Image_resources http://fedoraproject.org/en/get-fedora#clouds https ...