1.数组Array

(1)创建数组

    dataType[] arrayName = new dataType[length];必须指定大小,否则会报错;如果不想指定大小,应采用声明数组变量的方式

    dataType arrayName[];效果相同,这是C/C++创建数组的方式

    dataType[] arrayName = {elem1,elem2,......};

(2)数组的初始化

数组创建之后如果没有给数组元素赋值,那么java会给数组提供一个默认值。

内置类型型数组:
char型:默认值是0对应的字符
int型:默认值是0
float型:默认值是0.0
boolean型:默认值是false
对象型数组:默认值是null,例String,Integer,Character......

(3)数组常用的方法

java.util.Arrays提供的方法都是静态的。
    1.fill(object[],fromindex,toIndex,val):给数组元素赋值或指定区域的赋值
2.equals():判断两个数组是否相等
3.sort(object[]):数组排序
4.binarySearch():对排序好的数组进行二分查找
5.System.arraycopy(object[],index,object[],index,count):将一个数组复制到另一个数组中去
6.islength()

2.数据结构

(1)枚举Enumeration

  hasMoreElements():判断下一个元素是否存在
  nextElement():返回下一个对象

(2)位集合Bitset

构造函数:

  .BitSet()

  .BitSet(int size):所有位初始化为false

BitSet常用方法:

1.set(int index):将索引处的值设为true,还可以指定区域设置指定的值
例:
BitSet a = new BitSet(5);
a.set(0)将0位设置为true
a.set(1,true) 将1位设为true
a.set(0,4,true) 区域设置
a字面存储的是值为true的索引
System.out.println(a){0,1,2,3,4}
2.get():获取值操作与set()类似
a.get(0)得到的是boolean值
a.get(0,2)返回一个对象
3.length():返回最后一位为true时的元素个数
4.size():返回实际使用的空间位数
BitSet a = new BitSet(10);
a.set(1,4);len为4
a.set(7);len为8
a.size();返回值为64,位数以步长64递增
5.and(BitSet set):对集合执行逻辑与操作,并将逻辑操作结果保存在目标集合中
a.and(b):逻辑运算结果保存在a中
andNot():与非操作,只改变参与的元素
or():l逻辑或操作
xor():逻辑异或操作
6.cardinality():返回值为true的位数
7.clear():将相应区域位设为false
8.clone():复制BitSet
BitSet c = b.clone();程序会报错
Object c = b.clone();
BitSet c = (BitSet)b.clone();
9.flip():设置指定位置的补码
10.isEmpty():如果没有包含任何设置为true的为,返回true
11.nextClearBit(int fromindex)和nextSetBit(int fromindex):返回第一个为false(true)的索引
12.toString():把字面量转换为字符串
a.toString();返回{1,2}

(3)栈Stack

栈是Vector的一个子类,它实现了一个标准的先进后出的栈

1.empty():判断栈是否为空
2.Object peek():查看栈顶部的对象
3.Object push():将元素压入栈的顶部
4.Object pop():移除栈顶部对象,并返回
5.search():返回指定元素的索引,以1为基数

(4)Properties

Properties继承于Hashtable.表示一个持久的属性集。

    1.setProperty(String key,String value):设置属性
2.getProperty(String key,String default):获取属性
3.load(InputSteam streamln) throws IOException:从输入流中读取属性列表
4.list(PrintStream streamOut):将属性列表输出到输出流
list(PrintWriter steamOut)
5.store(OutputStream streamOut,String description):将属性列表写入输出流

(5)向量Vector

Vector类实现了一个动态的数组。和ArrayList很相似,凡是两者是不同的:

  1.Vector是同步访问的

  2.Vector包含了许多传统的方法,这些方法不属于集合框架。

构造方法:

  1.Vector(int size, int incr):增量表示向量每次增加的容量

  2.Vector(Collection c)

1.增
add(int index,Object element):在指定位置添加元素
addAll(int index,Collection c):在指定位置添加集合
2.删
remove():删除元素对象
remove(2);删除第2个元素
remove((Integer)2);删除值为2的对象,只能删除一个元素
removeAll(Collection c):删除向量中与集合c相同的元素。
removeAllElements():删除所有的元素
retainAll(Collectin c):删除除c中元素以外的其他元素
3.改
set(int index,object obj):在指定索引位置设置元素
4.查
get(int index):获取指定位置的元素
indexOf(Object obj,int fromIndex):返回指定元素第一次出现的索引
lastIndexOf(Object obj,int fromIndex):返回指定元素最后一次出现的索引
5.其他
clear():移除所有的元素
clone():复制向量的一个副本
toArray():向量转为数组
size():返回元素个数
capacity:返回容量
contains():判断是否包含某元素
containsAll():判断是否包含集合中的元素
elements():返回的是枚举
iterator():返回迭代器
isEmpty():判断是否为空

3.集合框架

java集合框架主要有两种类型的容器:Collection和Map;Collection接口又有3种子类型:List,Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList,LinkedList,HashSet,LinkedHashSet,HashMap,LinkedHashMap和HashTable。

(1)Collection常用方法

1.sort():排序
2.reverse():反转
3.shuffle():打乱
4.fill():赋值
5.min(,comparator)/max(,comparator):指定比较器
6.copy(list m,list n):将list n copy到 list m 中去
7.indexOfSublist(List list,List subList)
8.lastIndexOfSublist(List source,List target):截取字符串
9.rotate(List list,int m):m为正数,表示循环向右移动m次;m为负数,表示循环向左移动
10.swap(List list,int i,int j):交换指定索引元素的位置
11.binarySearch():返回指定元素的索引
12.replaceAll(List list,Object old ,Object new):替换list中元素

(2)List常用方法

与vector类似

1.增
add(int index,Object element):在指定位置添加元素
addAll(int index,Collection c):在指定位置添加集合
2.删
remove():删除元素对象
remove(2);删除第2个元素
remove((Integer)2);删除值为2的对象,只能删除一个元素
removeAll(Collection c):删除向量中与集合c相同的元素。
retainAll(Collectin c):删除除c中元素以外的其他元素
3.改
set(int index,object obj):在指定索引位置设置元素
4.查
get(int index):获取指定位置的元素
indexOf(Object obj,int fromIndex):返回指定元素第一次出现的索引
lastIndexOf(Object obj,int fromIndex):返回指定元素最后一次出现的索引
5.其他
clear():移除所有的元素
toArray():向量转为数组
size():返回元素个数
contains():判断是否包含某元素
containsAll():判断是否包含集合中的元素
iterator():返回迭代器
isEmpty():判断是否为空

(3)Set常用方法

1.增
add(int index,Object element):在指定位置添加元素
addAll(int index,Collection c):在指定位置添加集合
2.删
remove():删除元素对象
removeAll(Collection c):删除向量中与集合c相同的元素。
retainAll(Collectin c):删除除c中元素以外的其他元素
5.其他
clear():移除所有的元素
toArray():向量转为数组
size():返回元素个数
contains():判断是否包含某元素
containsAll():判断是否包含集合中的元素
iterator():返回迭代器
isEmpty():判断是否为空

(4)HashTable常用方法

1.增
put(Object key,Object value):添加元素
putAll(Map m):添加图
2.删
remove(Object key):删除元素
3.改
replace(Object key,Object value)
replace(Object key,Object oldvalue,Object newvalue)
3.查
get(Object key):获取元素的值
containsKey(Object key):判断是否有指定的key
containsValue(Object value):判断是否有指定的value
4.其他
elements():返回哈希表中的值的枚举
keys():返回哈希表中的键的枚举
keySet():返回键的集合
values():返回值的集合
entrySet():entry.getKey(),entry.getValue(),entry是Map.EntrySet()实例化对象
clear():将哈希表清空
isEmpty():判断表是否为空
size():返回哈希表的大小

4.数组和集合的相互转换

  数组——》集合:Arrays.asList(Object[])

  集合——》数组:obj.toArray(Object[])

  注:参数是数组对象,不是内置数据数组,比如char[],这种java把它的内存地址作为集合的一个元素。

java基础系列(二):java数据结构及常用方法的更多相关文章

  1. Java基础系列二:Java泛型

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...

  2. java基础(十二 )-----Java泛型详解

    本文对java的泛型的概念和使用做了详尽的介绍. 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”.一提到 ...

  3. 【Java基础系列】Java IO系统

    前言 创建好的输入/输出系统不仅要考虑三种不同种类的IO系统(文件,控制台,网络连接)还需要通过大量不同的方式与他们通信(顺序,随机访问,二进制,字符,按行,按字等等). 一.输入和输出 Java的I ...

  4. Java基础系列-equals方法和hashCode方法

    原创文章,转载请标注出处:<Java基础系列-equals方法和hashCode方法> 概述         equals方法和hashCode方法都是有Object类定义的. publi ...

  5. Java基础系列-Comparable和Comparator

    原创文章,转载请标注出处:<Java基础系列-Comparable和Comparator> 一.概述         Java中的排序是由Comparable和Comparator这两个接 ...

  6. Java基础系列--HashMap(JDK1.8)

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10022092.html Java基础系列-HashMap 1.8 概述 HashMap是 ...

  7. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  8. 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!

    目录 目录 string基础 Java String 类 创建字符串 StringDemo.java 文件代码: String基本用法 创建String对象的常用方法 String中常用的方法,用法如 ...

  9. java‘小秘密’系列(二)---Integer

    java'小秘密'系列(二)---Integer 前言:本系列的主题是平时容易疏忽的知识点,只有基础扎实,在编码的时候才能更注重规范和性能,在出现bug的时候,才能处理更加从容. 目录 java'小秘 ...

  10. Java基础系列--static关键字

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8477914.html 一.概述 static关键字是Java诸多关键字中较常使用的一个,从 ...

随机推荐

  1. [USACO]骑马修栅栏 Riding the Fences

    题目链接 题目简述:欧拉回路,字典序最小.没什么好说的. 解题思路:插入边的时候,使用multiset来保证遍历出出答案的字典序最小. 算法模板:for(枚举边) 删边(无向图删两次) 遍历到那个点 ...

  2. 转,SqlServer 基础之(触发器)

    概念:   触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触 ...

  3. 45 | 自增id用完怎么办?

    MySQL 里有很多自增的 id,每个自增 id 都是定义了初始值,然后不停地往上加步长.虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限.比如,无符号整型 (un ...

  4. 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包

    一.加密与解密 1.1 常见的加密算法 对称加密:怎么加密,就怎么解密 DES Date Encryption Standard AES Advance Encryption Standard 非对称 ...

  5. webservice的soap

    1.soap的定义: 2.使用TCP/IP Monitor监视Soap协议 eclipse工具,show view-->other-->debug-->TCP/IP Monitor ...

  6. aws使用之负载均衡elb要点

    目录: 1.创建负载 2.目标群组 3.使用注意事项 4.总结 创建负载 alb负载 https://docs.aws.amazon.com/zh_cn/elasticloadbalancing/la ...

  7. 在使用avalon框架的时候,用ms-duplex双工绑定,在template上是有数据渲染的,但是js里面却是undefined

    controller绑定是用于圈定某个VM的作用域范围,因为有的页面,你用的对象一致,而这两个作用域里面有相同的数据,那么很有可能是另一个作用域里面的东西影响了这个作用域,所以在指定作用域的给不同的命 ...

  8. ICEM-圆锥的一种画法(2D转3D)

    原视频下载地址:https://pan.baidu.com/s/1jIOEelo  密码: btap

  9. 当前主流的小型嵌入式 GUI

    当前主流的嵌入式 GUI当前主流的小型嵌入式 GUI 主要有:emWin(uCGUI),TouchGFX,Embedded Wizard GUI,uGFX 和 MicroChip GUI. 当然,还有 ...

  10. WhereHows编译时报错EINVRES Request to https://bower.herokuapp.com/packages/ace-builds failed with 502

    先说明一下,简单点讲就是bower的仓库地址换掉了.解决方案如下: 在.bowerrc文件中增加这么一句: { "registry": "https://registry ...