一、首先看一下集合的框架图:

由于collection也继承了Iterator和comparable接口,因此我们可以使用Iterator来遍历元素,也可以通过自定义compareTo函数来重新编写自己的排序。

二、代码

1、List

package testCollection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class testList {
public static void main(String[] args){
List list = new ArrayList();
list.add("test1");
list.add("test2");
list.add("test3"); System.out.println("out by for!");
for(Object o : list){
System.out.println(o);
} System.out.println("out by iterator!");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
String element = (String)iterator.next();
System.out.println(element);
}
}
}

运行结果:

out by for!
test1
test2
test3
out by iterator!
test1
test2
test3

2、Set,如果遇到重复的元素,不会添加

package testCollection;

import java.util.HashSet;
import java.util.Set; public class testSet {
public static void main(String[] args){
Set set = new HashSet();//使用set一般都是用hashset,这个会快一些
set.add("test1");
set.add("test2");
if(set.add("test2")){
System.out.println("add successful");
}else{
System.out.println("add failed");
}
}
}

运行结果:

add failed

3、Map

package testCollection;

import java.util.HashMap;
import java.util.Map;
import java.util.Set; public class testMap {
public static void main(String[] args){
Map map = new HashMap(); map.put(, "test1");
map.put(, "test2"); System.out.println("size "+map.size());
System.out.println(map.get()); Set keys = map.keySet();
for(Object key : keys){
System.out.println(key);
} map.remove();
System.out.println("size "+map.size());
}
}

运行结果:

size
test1 size

4、自定义排序函数
person类,继承Comparable接口,重载compareTo函数

package testCollection;

public class Person implements Comparable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
@Override
public int compareTo(Object person) throws ClassCastException {
if(!(person instanceof Person)){
throw new ClassCastException("A Person perspected!");
}
int age = ((Person)person).getAge();
return this.age-age;
}
}

测试类

package testCollection;

import java.util.Arrays;

public class testComparable {
public static void main(String[] args){
Person[] persons = new Person[];
persons[] = new Person("test1",);
persons[] = new Person("test2",);
persons[] = new Person("test3",);
persons[] = new Person("test4",); System.out.println("before sorting!"); for(Person p : persons){
System.out.println("name: "+p.getName()+" age: "+p.getAge());
} System.out.println("after sorting!");
Arrays.sort(persons);
for(Person p : persons){
System.out.println("name: "+p.getName()+" age: "+p.getAge());
}
}
}

运行结果:

before sorting!
name: test1 age:
name: test2 age:
name: test3 age:
name: test4 age:
after sorting!
name: test3 age:
name: test1 age:
name: test4 age:
name: test2 age:

【java开发系列】—— 集合使用方法的更多相关文章

  1. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  2. 【java开发系列】—— 自定义注解

    之前在开发中,就总纳闷,为什么继承接口时,会出现@Override注解,有时候还会提示写注解@SuppressWarnings? 原来这是java特有的特性,注解! 那么什么是注解呢? 注解就是某种注 ...

  3. 【java开发系列】—— JDK安装

    前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...

  4. Java开发系列-文件上传

    概述 Java开发中文件上传的方式有很多,常见的有servlet3.0.common-fileUpload.框架.不管哪种方式,对于文件上传的本质是不变的. 文件上传的准备 文件上传需要客户端跟服务都 ...

  5. 在idea的java开发中字符串length()方法获取长度与赋值不符的问题

    最近在开发中用到length()方法获取中文字符串的长度,发现获得的长度与实际不符.比如个String类型赋值为"中",但获取长度却是2. 这让我百思不得其解,后来突然想起来我在研 ...

  6. java基础系列--集合类库(一)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7229478.html 1.概述 Java的集合类库很是丰富,囊括了大部分的常见数据结构形式 ...

  7. Java开发系列-JDBC

    概述 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和 ...

  8. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

    建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...

  9. Java基础系列--集合之ArrayList

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8494618.html 一.概述 ArrayList是Java集合体系中最常使用,也是最简单 ...

随机推荐

  1. 自学Zabbix3.6.1-触发器triggers创建

    1. 触发器概念 触发器(triggers)是什么?触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,item一收回数据,讲解任务交给触发器去评估状态,明白触发器是怎么一回事了把?在触 ...

  2. 【java提高】---数组增删 list删除 map删除

    数组增删 集合删除 1.数组增删 package com.test; import java.util.List; import java.util.ArrayList; import java.ut ...

  3. Spark2.2.0分布式集群安装(StandAlone模式)

    一.依赖文件安装 1.1 JDK 参见博文:http://www.cnblogs.com/liugh/p/6623530.html 1.2 Scala 参见博文:http://www.cnblogs. ...

  4. 从源码角度简单看StringBuilder和StringBuffer的异同

    概述 StringBuilder和StringBuffer是两个容易混淆的概念,本文从源码入手,简单看二者的异同. 容易知道的是,这两者有一个是线程安全的,而且线程安全的那个效率低. java doc ...

  5. free查看内存和swap使用情况,增加、删除、自动挂载swap分区

    free [root@localhost ~]# free total used free shared buff/cache available Mem: 999936 142760 566536 ...

  6. grep 、find 、tree 新发现

    [root@localhost tftpboot]# ip address | grep -A 1 " eno16777736"2: eno16777736: <BROADC ...

  7. 浅析 SpringMVC 原理和配置.

    一.原理 Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序,将请求处理的逻辑和 ...

  8. jest for elasticsearch

    *elasticsearch(后面简称es) 背景: 目前项目应用中对es的操作用的是http(自己封装)的一套方法:有些数据处理起来还是需要定制开发处理,不是很方便.正好需要对本项目重新进行改造,于 ...

  9. 用node搭建简单的静态资源管理器

    我们都知道,老牌的3p服务器都是自带静态资源管理器的.但是node不同,它没有web容器,它的路由地址和真实地址可以没有联系,所有node的优点,是可以把路由做得相当漂亮. 但静态资源管理器也是必不可 ...

  10. zepto的返回顶部scrollTop的动画解决方法

    写移动端的时候,引入的zepto.js里的animate不包括scrollTop,所以返回顶部的时候,没有动画的效果.这里我使用的是setInterval的方法.代码详情如下 <!DOCTYPE ...