JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
主函数类MainDemo.java
package com.itcast.test20140109; import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.TreeSet;
import java.util.Vector; public class MainDemo { public static void main(String[] args) {
// StringUserMethod();
// StringBufferUserMethod();
/*
* StringBuffer是线程同步的,通常用于多线程
* StringBuilder是线程不同步的,多线程不安全,通常用于单线程,JDK1.5以后出现,提高效率
*/ /*
* 基本数据类型对象包装类
* 为了方便操作基本类型值,将其封装成了对象
* 用于描述该对象的类就称为基本数据类型对象包装类
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*/ //进制转换
//ConvertJinzhi(); //关于Collection的使用
CollectionUser(); } /**
* 关于Collection的使用
*/
public static void CollectionUser() {
/*
* Collection的常见方法:
* boolean isEmpty();判断集合中是否有元素
* int size()
* Iterator iterator();取出元素的方式,迭代器
* Iterator接口就是对所有的Collection容器进行元素取出的公共接口
* boolean retainAll(Collection coll):取交集
*
*/
Collection collection = new ArrayList();
collection.add("aa1");
collection.add("aa2");
collection.add("aa3");
//使用集合后不需要使用迭代器,使用for,若还需要使用,就使用while
for (Iterator iterator = collection.iterator();iterator.hasNext();) {
System.out.println(iterator.next());
} Iterator iterator = collection.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
} /*
* List:有序(存入和取出的顺序一致),元素都有索引,元素可以重复
* Set:元素不能重复,无序。
* Object set(index,element);修改List集合中的元素
* Object get(index);获取List集合中的元素
* List subList(from,to);获取List集合中的子集合元素
*/ //使用ListIterator操作List集合
List list = new ArrayList();
list.add("");
list.add("");
list.add("");
ListIterator it = list.listIterator();//使用listIterator可以修改list集合中的元素,不会抛出异常
while(it.hasNext()){
Object object = it.next();
if(object.equals("")){
it.add("");//要添加到迭代器中,不能list.add("4");
}
System.out.println(object);
}
System.out.println(list); /*
*Vector:内部是数组数据结构,是同步的。正删查都很慢
*ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。
*LinkedList:内部是数组数据结构。是不同步的。增删元素的速度很快
*/
Vector vector = new Vector();
vector.addElement("a1");
vector.addElement("a2");
/*
* 下面这种写法不推荐使用,应该使用Iterator
*/
Enumeration enumeration = vector.elements();
while (enumeration.hasMoreElements()) {
System.out.println(enumeration.nextElement());
} LinkedList linkedList = new LinkedList();
linkedList.addFirst("linkedList1");
linkedList.addFirst("linkedList2");
System.out.println(linkedList.getFirst());//获取第一个但不删除
System.out.println(linkedList.removeFirst());//返回删除的这个元素 /*
* HashSet集合数据结构是哈希表,所以存储元素的时候,使用元素的hashCode方法来确定元素的位置,
* 再通过元素的equals方法来确定是否相同,如果存储自定义对象,可以重写hashCode方法和equals方法
* LinkedHashSet 有序的存储方式,HashSet hashSet = new LinkedHashSet();
* TreeSet:可以对TreeSet集合中元素进行排序,是不同步的,会调用compareTo()进行比较排序,
* 如果自定义类型排序,
* 1.需要实现Comparable接口,重写compareTo()方法
* 2.定义一个类实现Comparator接口,覆盖compare方法,将该类对象作为参数传递给TreeSet集合的
* 构造函数,推荐使用这种TreeSet treeSet = new TreeSet(new ImplementComparator());
* 比如字符串长度比较
*/
TreeSet treeSet = new TreeSet(new CompareByStringLength());
treeSet.add("bb");
treeSet.add("aaa");
for (Object object : treeSet) {
String string = object.toString();
System.out.println(string);
} } /*
* 进制转换
*/
public static void ConvertJinzhi() {
/*整数具备不同的进制体现
* 十进制转换其他进制
*/
System.out.println(Integer.toBinaryString());//转换二进制
System.out.println(Integer.toOctalString());//转换八进制
System.out.println(Integer.toHexString());//转换十六进制
/*
* 其他进制转换十进制
*/
System.out.println(Integer.parseInt("",));//二进制转换十进制
System.out.println(Integer.parseInt("",));//八进制转换十进制
System.out.println(Integer.parseInt("3c",));//十六进制转换十进制
} /*
* StringBuffer 使用
*/
public static void StringBufferUserMethod() {
/*
* StringBuffer:就是字符串缓冲区 用于存储数据的容器。 特点: 1.长度是可变的 2.可以存储不同类型数据。
* 3.最终要转车字符串进行使用。 4.可以对字符串进行修改。
*
* StringBuffer append(data); StringBuffer insert(index,date);
* StringBuffer delete(start,end); StringBuffer deleteCharAt(int
* index);//删除指定位置的元素 char charAt(index) int indexOf(string) int
* lastIndexOf(string); StringBuffer replace(start,end,String);
*/
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(true).append("");
System.out.println(stringBuffer.toString());// true1
stringBuffer.insert(, "a");
System.out.println(stringBuffer.toString());// tarue1
} /*
* String类使用
*/
public static void StringUserMethod() {
String s1 = "abcd";// 创建一个字符串在常量池中
String s2 = new String("abcd");// 创建两个对象,一个new,一个字符串对象在堆内存中
System.out.println(s1 == s2);// false
System.err.println(s1.equals(s2));// true,比较内容 System.out.println(s1.length());//
System.out.println(s1.charAt());// c
System.out.println(s1.indexOf('c'));// 2,找不到返回-1
System.out.println(s1.lastIndexOf('d'));// 3,lastIndexOf根据字符串获取在字符串中的第一次出现的位置
System.out.println(s1.substring(, ));// a /*
* String [] split(String regex); char[] toCharArray(); byte[]
* getBytes(); String toUpperCase(); String toLowerCase(); String
* replace(char oldch,char newch) String replace(String s1,String s2);
* String trim(); String concat(string);//将字符串进行连接
*/ /*
* boolean equals(Object obj) boolean equalsIgnoreCase(String str)
* boolean startsWith(String str) boolean endsWith(String str)
*/
System.out.println("a".compareTo("b"));// -1,a<b
}
}
字符串长度比较器CompareByStringLength.java
package com.itcast.test20140109; import java.util.Comparator; /**
* 字符串长度比较器
* @author yxl
*
*/
public class CompareByStringLength implements Comparator{ @Override
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
int temp = s1.length()-s2.length();
return temp==?s1.compareTo(s2):temp; } }
JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)的更多相关文章
- JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)
1.命令行方式 dos命令行,常见的命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd/:退回到根目录 del:删除文 ...
- 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)
标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...
- Java学习笔记--String StringBuffer StringBuilder
String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...
- java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符
1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...
- java基础学习日志--String、StringBuffer方法案例
package StringDemo; import java.util.Arrays; /* * 常用String.StringBufer类的方法 */ public class Demo1 { p ...
- [改善Java代码]正确使用String,StringBuffer,StringBuilder
CharSequence接口有三个实现类与字符串有关:String,StringBuffer,StringBuffer.虽然它们都与字符串有关,但是其处理机制是不同的. String类是不可改变的量, ...
- JAVA基础--常用类 String,StringBuffer, 基础数据类型包装类, Math类, Enum类
字符串相关类: String, StringBuffer String类为不可变的字符序列 String s1="hello"; String s2="hello&quo ...
- Java学习之String StringBuffer StringBuilder区别
1.String:对象长度是不可变的,是线程安全. 2.StringBuffer:对象长度是可变的,是线程安全. 3.StringBuilder:对象长度是可变,不是线程安全.
- Java基础学习篇---------String、集合的学习
一.String常用的方法: 1. == 实质比较两个对象的地址数值 String a = "hello" (hello为匿名对象) String a1 = "hell ...
随机推荐
- SSH整合之spring整合hibernate
SSH整合要导入的jar包: MySQL中创建数据库 create database ssh_db; ssh_db 一.spring整合hibernate带有配置文件hibernate.cfg.xml ...
- java中request,application,session三个域及参数简单示例
直接上代码: java代码: public class HelloAction implements Action { @Override public String execute() throws ...
- UML用例图总结
用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. [用途]:帮助开发团队以一种可视化的方式理解系统的功能需求. 用例图所包含的元素如下: 1. ...
- Flume-NG之KafkaChannel
apache下一个版本(1.6)将会带来一个新的组件KafKaChannel,顾名思义就是使用kafka做channel,当然在CDH5.3版本已经存在这个channel. 大伙知道,常用的chann ...
- PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)
如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...
- LR 测试数据库总结
今天工作中需要对mysql进行性能测试 我尝试用LR来做:但是mysql需要现在电脑上安装一个OBDC的mysql驱动器,然后在电脑的管理工具中的数据源中加入这个mysql驱动,测试连接数据库成功,O ...
- xcode6以后, 使用.pch
http://blog.csdn.net/lihuiqwertyuiop/article/details/39268101 总结: . 创建.pch文件 . Apple LLVM 6.1 - Lang ...
- compact过滤数组中的nil
http://ruby-doc.org/core-2.2.0/Array.html#method-i-compact compact → new_aryclick to toggle source R ...
- linux 文件权限除了r、w、x外还有s、t、i、a权限:
s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行.在设置s权限时文件属主.属组必须先设置相应的x权限,否 则s权限并不能正真生效(c h m o d命令不进行必要的完 ...
- intellij idea 如何更改编辑器文本字体和大小
换上了intellij idea之后,第一件事就是想要改变下文字字体,因为在我这个27寸的2k分辨率的屏幕上,文字显然太小了. intellij idea字体设值分成两部分,一部分是UI部分字体字号设 ...