package?src.com.cg;
import?java.util.*;
public?class?ListSort?{
????public?static?void?main(String[]?args)?{
????????//定義一個字符串包含?數(shù)字和字母
????????String?str?=?"zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
????????List<String>?list?=?new?ArrayList<>();
????????ListSort?sort?=?new?ListSort();
????????//添加元素
????????sort.add(str,?list);
????????System.out.println(list.size());
????????for?(String?s?:?list)?{
????????????System.out.println("排序前的字符串是"?+?s);
????????}
????????Collections.sort(list,?new?Comparator<String>()?{
????????????@Override
????????????public?int?compare(String?o1,?String?o2)?{
????????????????return?o1.length()?-?o2.length();
????????????}
????????});
????????for?(String?s?:?list)?{
????????????System.out.println("排序后的字符串是:"?+?s);
????????}
????}
????private?void?add(String?str,?List<String>?list)?{
????????Random?random?=?new?Random();
????????do?{
????????????StringBuilder?sb?=?new?StringBuilder();
????????????//?隨機生生成一個10以內(nèi)的長度
????????????int?i?=?random.nextInt(11);
????????????//用這個長度去循環(huán)遍歷生成該長度的字符串
????????????for?(int?i1?=?0;?i1?<?i;?i1++)?{
????????????????int?i2?=?random.nextInt(62);
????????????????sb.append(str.charAt(i2));
????????????}
????????????//過濾掉空字符串和重復的字符串
????????????if?(!sb.toString().isEmpty()?&&?(!list.contains(sb.toString())))?{
????????????????//保證每個元素的長度都是不一樣的
????????????????if?(list.isEmpty())?{
????????????????????list.add(sb.toString());
????????????????}?else?{
????????????????????boolean?flag?=?false;
????????????????????for?(int?i4?=?0,?length?=?list.size();?i4?<?length;?i4++)?{
????????????????????????if?((list.get(i4).length()?==?sb.length()))?{
????????????????????????????flag?=?true;
????????????????????????}
????????????????????}
????????????????????if?(!flag)?{
????????????????????????list.add(sb.toString());
????????????????????}
????????????????}
????????????}
????????}?while?(list.size()?!=?10);
????}
}
2019-02-19
public void testSort4() {
List<String> stringList = new ArrayList<String>();
Random random = new Random();
char[] charList = {'a','b','c','d','e','f','d','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
String string = "";
for(int i = 0 ; i <10 ; ++i) {
int bit = random.nextInt(10) + 1;
do {
string = "";
for(int j = 0 ; j <bit ; ++j) {
string += charList[random.nextInt(26)];
}
}while(stringList.contains(string));
stringList.add(string);
}
System.out.println("--------------排序前---------------");
for (String str : stringList) {
System.out.println("字母:" + str);
}
Collections.sort(stringList);
System.out.println("--------------排序后---------------");
for (String str : stringList) {
System.out.println("字母:" + str);
}
}
2019-01-11
package com.imooc.collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class CollectionsTest {
/**
* 泛型為Integer的List排序
* @param args
*/
public void testSort1(){
List<Integer> list = new ArrayList<Integer>();
Random random = new Random();
int k;
for(int i=0;i<10;i++){
do{
k = random.nextInt(100);
}while(list.contains( k));
list.add(k);
System.out.println("隨機數(shù):"+k);
}
//排序前遍歷隨機數(shù)
System.out.println("--------排序前遍歷隨機數(shù)------");
for (Integer integer : list) {
System.out.println("隨機數(shù):"+integer);
}
//集合排序
Collections.sort(list);
//排序后遍歷隨機數(shù)
System.out.println("--------排序后遍歷隨機數(shù)------");
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
System.out.println("隨機數(shù):"+iterator.next());
}
}
/**
* 泛型為字符串的排序
* @param args
*/
public void testSort2(){
ArrayList<String> listStr = new ArrayList<String>();
listStr.add("jenny");
listStr.add("Mark");
listStr.add("tom");
System.out.println("--------排序前遍歷字符串------");
for (String string : listStr) {
System.out.println("字符串:"+string);
}
Collections.sort(listStr);
System.out.println("--------排序后遍歷字符串------");
for (String string : listStr) {
System.out.println("字符串:"+string);
}
}
/**
* 是個字符串,長度是1-10
* @param args
*/
public void testSort3(){
List<String> list = new ArrayList<String>();
Random random = new Random();
String use = "0123456789asdfghjklzxcvbnmqwertyuiopASDFGHJKLQWERTYUIOPXZCVBNM";
char[] charArray = use.toCharArray();
int b = charArray.length;
int k;
int index;
String bb="";
for(int i=0;i<10;i++){
do{
k = random.nextInt(10);
for(int j=0;j<=k;j++){
?index = random.nextInt(charArray.length);
?char c = charArray[index];
?bb+=c;
}
}while(list.contains(bb));
list.add(bb);
System.out.println("隨機字符串:"+bb);
bb="";
}
System.out.println("----------排序前遍歷字符串---------");
for (String str : list) {
System.out.println("隨機字符串:"+str);
}
System.out.println("----------排序后遍歷字符串---------");
Collections.sort(list);
for (String str : list) {
System.out.println("隨機字符串:"+str);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CollectionsTest collectionsTest = new CollectionsTest();
//collectionsTest.testSort1();
//collectionsTest.testSort2();
collectionsTest.testSort3();
}
}