在单例模式下,编写一些实用的数组集合间的转换方法

根据我工作以来总结的经验,在工作中可能用到的数组、集合间的转换知识,我决定写一个单例类封装了很多关于数组、集合相互转换的方法,希望能帮到大家。

By 何泽江 (凯捷国际)

package org.集合数组的操作转换;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

public class SingletonInstance {

/**
* @declaration 在单例模式下,测试一些JAVA技术细节
* @author 何泽江
*/
private static SingletonInstance instance = null ;

private SingletonInstance(){

}

public static SingletonInstance getSingletonInstance(){
if(instance == null)
instance = new SingletonInstance();
return instance;
}

void testSwitchSentance1(int i){
switch(i){
case 1 :
System.out.println("1");
break;
case 2 :
System.out.println("2");
break;
case 3 :
System.out.println("3");
break;
default :
System.out.println("default");
}
}

void testSwitchSentance2(int i){
switch(i){
case 1 :
System.out.println("1");
case 2 :
System.out.println("2");
case 3 :
System.out.println("3");
default :
System.out.println("default");
}
}

/**
* 测试下ArrayList LinkedList插入和查找的效率
* @author hezejiang
*/
void testListRatio(){
long time1 = System.currentTimeMillis();
List arrayList = new ArrayList();
for(int j=0;j<1000000;j++){
arrayList.add(j);
}
System.out.println("arrayList :"+arrayList.size());
System.out.println("arrayListcosttime: "+(System.currentTimeMillis() - time1));
long time2 = System.currentTimeMillis();
List linkedList = new LinkedList();
for(int i=0;i<1000000;i++){
linkedList.add(i);
}
System.out.println("linkedList :"+linkedList.size());
System.out.println("linkedListcosttime: "+(System.currentTimeMillis() - time2));


}

/**
* 数组定义规范化及其效率测试相关
* @author hezejiang
*/
void testArrayRatio(){
int[] array1 = new int[9];
for(int i = 0; i<array1.length;i++){
array1[i] = i;
System.out.println("array1["+i+"]: "+array1[i]);
}

int[] array2 = {1,2,3,4,5,6,7,2};
for(int i = 0; i<array2.length;i++){
System.out.println("array2["+i+"]: "+array2[i]);
}

for(int i = 0; i<array2.length;i++){
for(int j = array2.length - 1; j>=0; j--){
if(array2[i] == array2[j]){
System.out.print("重复的数是"+array2[i]+"下表为"+i);
}
}
}

}

/**
* 去除vector中重复元素
* @author hezejiang
*/
void delDupElement(){
Vector vector = new Vector();
vector.add("A1");
vector.add("B1");
vector.add("A2");
vector.add("B2");
vector.add("C");
vector.add("C");
System.out.println("vector: "+ vector);
//1利用HashSet的元素不重复性,将其强转成HashSet
//HashSet vecSet = new HashSet(vector);
//Iterator iter = vecSet.iterator();
//while(iter.hasNext()) {
//String str = (String) iter.next();
//System.out.println("str: "+ str);
//}
//System.out.println("vecSet: " + vecSet);
//2利用俩个vector,如果新的vector里不包含旧vector的元素,则将该元素add进去
Vector vectorNew = new Vector();
for(int i=0; i<vector.size(); i++){
Object obj = vector.get(i);
if(! vectorNew.contains(obj)){
vectorNew.add(obj);
}
System.out.println("vectorNew:["+i+"]"+vectorNew.get(i));
}
System.out.println("vectorNew: "+vectorNew);
}

/**
* 冒泡排序
* @param flag
* @param arrayInt
* @declaration flag为0 从大到小排序
* flag为1 从小到大排序
* arrayInt要排序的数组
* @author <href mailto:843404841@qq.com>何泽江</href>
*/
static void bubborSort(String flag, int[] arrayInt) {
if (String.valueOf("0").equals(flag)) {
System.out.println("数组从大到小排序");
for (int i = 0; i < arrayInt.length - 1; i++) {// 从数组第一个元素到倒数第二个元素
for (int j = i + 1; j < arrayInt.length; j++) {// 从数组的第二个元素到最后一个元素
int temp;
if (arrayInt[i] < arrayInt[j]) {
temp = arrayInt[i];
arrayInt[i] = arrayInt[j];
arrayInt[j] = temp;
}
}
}
for (int i = 0; i < arrayInt.length; i++) {
System.out.println("arrayInt[" + i + "] " + arrayInt[i]);
}
} else if(String.valueOf("1").equals(flag)){
System.out.println("数组从小到大排序");
for (int i = 0; i < arrayInt.length - 1; i++) {// 从数组第一个元素到倒数第二个元素
for (int j = i + 1; j < arrayInt.length; j++) {// 从数组的第二个元素到最后一个元素
int temp;
if (arrayInt[i] > arrayInt[j]) {
temp = arrayInt[i];
arrayInt[i] = arrayInt[j];
arrayInt[j] = temp;
}
}
}
for (int i = 0; i < arrayInt.length; i++) {
System.out.println("arrayInt[" + i + "] " + arrayInt[i]);
}
}else{
System.out.println("传人flag标志错误!");
}
}

/**
* translation between List && Array
* @return list or array
* @author hzj
* @param <Sting>
*/

protected void listAndArrayTrans(List list){

System.out.println("转换qian的list " + list);
final int size = list.size();
/***将LIST转换为ARRAY***/
String[] strArray = (String[])list.toArray(new String[size]);
for(int i=0; i<strArray.length; i++){
System.out.println("strArray[" + i + "] " + strArray[i]);
}
/***将ARRAY转换为LIST***/
list = Arrays.asList(strArray);
System.out.println("转换后的LIST " + list);
/**
* 附送数组的N种正确声明方式
*int intArr[] = new int[1];
*int[] intArr1 = new int[2];
*int[] intArr2 = {1,2,3,3};
*/
}

/**
* 利用readline读取一个文件的给定行数
* @author hzj
* @date 2013-5-13
*/

void testReadLine(File file, int m, int n){

try{
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),"UTF-8");//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
int i=0;
String lineTxt= "";
while((lineTxt = bufferedReader.readLine())!=null){
i+=1;
if(i>=m&&i<=n){
//读入到文件中
System.out.println(lineTxt);
}
}
}catch(IOException e){
}
}

/**
* 利用二分法实现数组的逆序输出
* @author hzj
* @date 2013-5-14
*/

void reverseArray(int[] arr){

System.out.println("要排序的数组为:" + Arrays.toString(arr));
int len = arr.length;
for(int i=0; i<len/2; i++){
int temp;
temp = arr[i];
arr[i] = arr[len-1-i];
arr[len-1-i] = temp;
}

System.out.println("逆序输出的数组为:" + Arrays.toString(arr));
//Arrays.sort()方法是按元素大小顺序输出
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值