JAVA利用properties实现的一个小功能

本文介绍了一种基于Java实现的用户轮询登录机制,通过维护一个包含用户索引的List集合,并利用当前时间戳更新已使用的用户索引来避免重复登录,确保每个用户按顺序被调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次说的小功能呢,其实是跟项目中用到的知识有关,虽然对别人可能会起不到什么作用,但博客是我记录知识的好地方,所以便总结在此

目标功能:准备好N个账户,名字的命名形式为:用户名+编号,每次登陆使用一个不同用户,当然这个账户不能重复,

程序实现原理:首先呢准备好一个List将用户个数的集合放入进去:这个LIST支持的得是Long类型而不是int,为什么这么做呢,因为后面要用到System.currentTimeMillis();然后呢遍历找出list集合中最小的数字,将索引记住,设置list集合中这个索引的值为System.currentTimeMillis();这样的话list集合中的数字就有个最大的了,一次类推以后每遍历出来一个最小的就给他赋值为System.currentTimeMillis();,这样这N个用户总会轮流的来使用

好了,说的可能不是太清晰,看看代码就OK了,直接运行看不出效果得在服务器上跑出来

user.properties

user.prefixname=user
user.count=20

处理程序

package com.cn.util.common;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class PropertiesRead {
	public static InputStream inStream = Thread.currentThread()
			.getContextClassLoader().getResourceAsStream("user.properties");
	public static Properties properties = new Properties();
	public static List<Long> caches=new ArrayList<Long>();
	public static String accname;
	public static int count;
	static {
		try {
			properties.load(inStream);
			accname = (String) properties.get("user.prefixname");
			count = Integer.valueOf(properties.getProperty("user.count"));
			for (int i = 1; i <= count; i++) {
				caches.add(Long.valueOf(i));
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		
		raedProperties();
		// int random=(int)(Math.random()*10)+1;
		// System.out.println(random);
		// System.out.println(System.currentTimeMillis());
	}

	public static String raedProperties() {
		int size=caches==null?0:caches.size();
		Long flag=Long.MAX_VALUE;
		int  index=0;
		for(int i=0;i<size;i++){
			if(flag>caches.get(i)){
				flag=caches.get(i);
				index=i;
			}
		}
		caches.set(index, System.currentTimeMillis());
		System.out.println(index+"==="+flag+"==="+caches.get(index));
		String loginName=accname+(index+1);
		System.out.println(caches);
		System.out.println("登录名称"+loginName);
      return loginName;
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值