集合的知识点梳理(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 ...
随机推荐
- Spring的类型转换器
spring有2种类型转换器,一种是propertyEditor,一种是Converter. 第一种属性编辑器用法见Spring的属性编辑器的章节.如果2种转换器都适用,那么究竟会适用哪种呢?Spri ...
- 简单几何(线段相交) POJ 2653 Pick-up sticks
题目传送门 题意:就是小时候玩的一种游戏,问有多少线段盖在最上面 分析:简单线段相交,队列维护当前最上的线段 /******************************************** ...
- 模拟 ACdream 1196 KIDx's Pagination
题目传送门 /* 简单模拟:考虑边界的情况输出的是不一样的,还有思维好,代码能短很多 */ #include <cstdio> #include <iostream> #inc ...
- Mesh系列文章 - 自定义Mesh
就是在做项目的过程中,有用到三角形的,今天就写一下如何自定义三角形? 先截个图,让大家有个感性认识! //引用 using UnityEngine; using System.Colle ...
- python+pygame游戏开发之使用Py2exe打包游戏
最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本. 这会吓退99%以上的人……所以把我们的游戏打包(注意是打包而不是编 ...
- vnc使用
使用rpm –qa vnc命令如果收到如下信息说明已经安装了vncserver, [root@localhost: ~]#rpm -qa |grep vnc gtk-vnc-python--.el5 ...
- 移动WEB测试工具 Adobe Edge Inspect
要用到的内容: Adobe Edge Code CC https://creative.adobe.com/products/code?promoid=KFKML Adobe Edge In ...
- NOIp 2006 作业调度方案 Label:坑 模拟(tyvj你不给我ac,我就把名字献给附中oj)
福建师大附中链接:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1211 [问题描述] 我们现在要利用m台机器加工n个工件,每个工件都有m道工序 ...
- 记save函数
在写商品修改的代码的时候,我使用到了create()函数,也使用到了save函数.但是我从表单接受过来的数据,在添加语句的时候都没成功.代码如下 function upd($goods_id){ $g ...
- 对thinkphp静态模板表单提交的理解
看表单的提交<form action="{$Think.const.__SELF__}" method="post">...</form&g ...