Java基础学习(四)-- 接口、集合框架、Collection、泛型详解
接口
class 实现类 implements 接口1,接口2{//某类实现了两个接口
@Override
public void print() {
System.out.println("接口1的抽象方法print()");
}
@Override
public void get() {
System.out.println("接口2的抽象方法get()");
}
}
interface A{
public void funA();
}
interface B{
public void funB();
}
interface C extends A,B{//C接口同时继承了A和B两个接口
public void funC();
}
(5).抽象类是类,接口是一种规范。
集合框架
ArrayList<String> strings = new ArrayList<String>();
strings.add("123");
strings.add("345");
Iterator<String> iterator = strings.iterator();
while (iterator.hasNext()) {
String s = iterator.next();
System.out.println(s);
}
3.ArrayList和LinkedList的区别
Iterator<String> iterator = hashSet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
Class Person implmments Comparable {
@Override
public int compareTo(Object obj) {
Person p = (Person) obj;
if (this.age > p.age) {
return 1;
}else if (this.age < p.age) {
return -1;
}else{
return 0;
}
}
}
Set<Person> hashSet = new TreeSet<Person>(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge()-02.getAge();
}
});
TreeSet<Person> list = new TreeSet<Person>(new cp());
class cp implements Comparator<Person>{
@Override
public int compare(Person o1, Person o2) {
// TODO Auto-generated method stub
return o1.getAge()-02.getAge();
}
}
Set<String> keySet = map1.keySet();
for (String string : keySet) {
System.out.println(map1.get(string));
}
Collection<String> values = map1.values();
Iterator<String> iterator = values.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
Set<Entry<String, String>> entrySet = map1.entrySet();
for (Entry<String, String> entry : entrySet) {
//System.out.println(entry.getKey()+"-"+entry.getValue());
System.out.println(entry);
}
Collections工具类
泛型 -- 参数化类型
泛型接口
1.声明泛型接口
interface inter<T>{
void test(T t);
}
2.实现类如果实现泛型接口,不能直接使用接口的泛型,需要重新声明
class test3<T> implements inter<T>{
@Override
public void test(T t) {
// TODO Auto-generated method stub
}
}
3.如果实现类不想作为泛型类,那么可以实现接口时直接给泛型的接口赋值。
class test3 implements inter<String>{
@Override
public void test(String t) {
// TODO Auto-generated method stub
}
}
泛型方法
class test3{
public <T> void test(T t) {
System.out.println();
}
public static <T> void test1(T t) {
System.out.println();
}
public static <T> void test2(T... t) {
for(T t1 : t){
System.out.println();
}
}
}
1.调用:test3.test("String");
2.调用:test3.test2(1,true,"123");
test3.test2(nwe Integer[]{1,2,3});
Java基础学习(四)-- 接口、集合框架、Collection、泛型详解的更多相关文章
- JAVA基础第四章-集合框架Collection篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- Java基础学习笔记十七 集合框架(三)之Map
Map接口 通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤立存在的(理解为单身),向集合中存 ...
- [置顶]
Java基础学习总结(34)——HTTP协议详解
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- Java基础学习总结(53)——HTTPS 理论详解与实践
前言 在进行 HTTP 通信时,信息可能会监听.服务器或客户端身份伪装等安全问题,HTTPS 则能有效解决这些问题.在使用原始的HTTP连接的时候,因为服务器与用户之间是直接进行的明文传输,导致了用户 ...
- JAVA基础第五章-集合框架Map篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- Java基础-引用数据类型之集合(Collection)
Java基础-引用数据类型之集合(Collection) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便 ...
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
package com.itcast.test20140113; import java.util.ArrayList; import java.util.Arrays; import java.ut ...
- Java基础知识强化之集合框架笔记04:Collection集合的基本功能测试
1. Collection集合的基本功能测试: package cn.itcast_01; import java.util.ArrayList; import java.util.Collectio ...
随机推荐
- 18.C++-[ ]操作符使用 、函数对象与普通函数区别(详解)
在上章17.C++-string字符串类(详解)学习了string类,发现可以通过[ ]重载操作符来访问每个字符. 比如: string s="SAD"; for(int i=0, ...
- Tomcat8配置tomcat-users.xml配置
默认tomcat-user.xml中的角色和用户配置示例如下: <!-- <role rolename="tomcat"/> <role rolename ...
- 设计模式 --> (5)适配器模式
适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作.比如说我的hp笔记本,美国产品,人家美国的电压是110V的,而我们中国的 ...
- Catch That Cow_bfs
Catch That Cow 题目大意:FrammerJohn找奶牛,给出n和k.FJ在n处.每次他可以向左移动一格.向右移动一格或者移动到自己当前格子数乘2的地方.求FJ最少移动多少次.其中,FJ和 ...
- WHCTF-babyre
WHCTF-babyre 首先执行file命令得到如下信息 ELF 64-bit LSB executable, x86-64 尝试用IDA64打开,定位到关键函数main发现无法F5,尝试了修复无果 ...
- 【WCF系列】(二)设计和实现服务协定
设计和实现服务协定 WCF术语介绍 服务(Service):服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个服务操作. 终结点(EndPoint):终结点是用来发送或接收消息(或 ...
- MySQL数据库操作类(PHP实现,支持连贯操作)
<?php /** * Author: suvan * CreateTime: 2018/2/27 * description: 数据库操作类(仅对接MySQL数据库,主要利用MySQLi函数) ...
- Beta预备
团队名称:稳住!我们能赢 Beta预备: 讨论组长是否重选的议题和结论 项目组长可以说是一个团队的灵魂和核心.一个好的领导者可以激发团队成员的工作热情,提高开发效率,保质保量的完成工作.虽然在Alph ...
- C程序第二次作业
2-1删除字符串中数字字符 1.设计思路 (1)主要描述题目算法 第一步:遍历指针s所指的s数组. 第二步:如果 * (s+i)在0至9之间的话,则跳过此 * (s+i). 第三步:如果* (s+i) ...
- Python upper()方法
描述 Python upper() 方法将字符串中的小写字母转为大写字母. 语法 upper()方法语法: str.upper() 参数 NA. 返回值 返回小写字母转为大写字母的字符串. 实例 以下 ...