您的位置 首页 java

java使用Collection单例集合实现元素存储

/**

* 使用List/Set存储[1,10]整数1到10 不重复,放入顺序随机

*/

public class TestList {

public static void main(String[] args) {

List<Integer> al = new ArrayList<>();

Random r = new Random();

int count=0;

while(al.size()<10){

Integer e = r.nextInt(10)+1;

//.nextInt(10)返回0到9整数,再+1变为1到10

if (!al.contains(e)){

//List允许元素重复 需要在添加之前判断.contains()

al.add(e);

}

count++;

}

System.out.println(al);

//结果[8, 10, 6, 7, 4, 5, 2, 3, 9, 1] List不会自动对容器内的元素更改顺序/排序 每个存入的元素都有index index是从0开始顺序的

System.out.println(count);

}

}

class TestSet{

public static void main(String[] args) {

Set<Integer> hs = new HashSet<>();

int count = 0;

while (hs.size()<10){

hs.add((int)(Math.random()*10+1));

count++;

//Set集合要求元素互异 存入重复元素会被舍弃

}

System.out.println(hs);

//结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] HashSet伪排序 初始通过[16]长度数组+单向链表进行存储 每个元素需要. hashCode ()返回结果%16 存放到对应的位置

//Integer重写.hashCode()直接return value 1到10%16结果为1到10 遍历时从前往后依次取出 结果恰好为从小到大顺序

System.out.println(count);

hs.add(16);

System.out.println(hs);

//结果[16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 16%16=0 存放到1的前面 遍历的时候元素的顺序不再有序

}

}

文章来源:智云一二三科技

文章标题:java使用Collection单例集合实现元素存储

文章地址:https://www.zhihuclub.com/180949.shtml

关于作者: 智云科技

热门文章

网站地图