当前位置:首页 » 存储配置 » java修改list存储对象

java修改list存储对象

发布时间: 2023-01-26 03:22:35

java中将list对象写入文件

可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储list对象,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write(list);//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

Ⅱ java中使用ArrayList如何修改里面的内容.

java里增强for循环【for(String a: arrayList)】里面可以修改数据,但是不能删除数据,如下例子:
<pre t="code" l="java">修改集合:

import java.util.ArrayList;
import java.util.List;

public class TestA {

public static void main(String[] args){
//集合
List<String> arrayList=new ArrayList<String>();
//存放元素
arrayList.add("hello");
arrayList.add("ninghao");
arrayList.add("bye");
//集合标量
int index=0;
//遍历集合
for(String a:arrayList){
//输出集合对象
System.out.println(a);
//修改集合对象
arrayList.set(index, "hi");
//标量加一
index++;
}
//输出集合
System.out.println(arrayList);
}
}

结果:
hello
ninghao
bye
[hi, hi, hi]

删除集合元素:

import java.util.ArrayList;
import java.util.List;

public class TestA {

public static void main(String[] args){
//集合
List<String> arrayList=new ArrayList<String>();
//存放元素
arrayList.add("hello");
arrayList.add("ninghao");
arrayList.add("bye");
//集合标量
int index=0;
//遍历集合
for(String a:arrayList){
//输出集合对象
System.out.println(a);
//删除元素
arrayList.remove(index);

//标量加一
index++;
}
//输出集合
System.out.println(arrayList);
}
}
结果:
hello
Exception in thread "main" java.util.
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at app.TestA.main(TestA.java:19)由以上例子可以看出,增强for循环,在循环里可以修改集合元素,但是不能删除集合元素。

Ⅲ java反射如何获取并修改list子对象

先判断类型是否是list,然后用下面的代码就可以获取到list集合

Java code?
Method m = (Method) obj.getClass().getMethod("get" + getMethodName(field.getName())); List list = (List) m.invoke(obj);
Java code?private static String getMethodName(String fildeName) throws Exception{ byte[] items = fildeName.getBytes(); items[0] = (byte) ((char) items[0] - 'a' + 'A'); return new String(items); }

Ⅳ java里怎么修改list记录中的某个值

  • java中使用arraylist修改里面的内容,可以使用set方法,拿到下标修改内容,如下代码packagecom.qiu.lin.he;

  • import<a href="https://www..com/s?wd=java.util&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3ErHD4P1D1PWm"target="_blank"class="-highlight">java.util</a>.ArrayList;
  • import<a href="https://www..com/s?wd=java.util&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3ErHD4P1D1PWm"target="_blank"class="-highlight">java.util</a>.List;
  • publicclassCeshi{
  • publicstaticvoidmain(String[]args){
  • List<String>list=newArrayList<String>();
  • list.add("a");
  • list.add("b");
  • list.add("c");
  • System.out.println("未修改前:");
  • for(Strings:list){
  • System.out.println(s);
  • }
  • list.set(0,"修改之后的元素");//修改对应的元素
  • System.out.println("已修改后:");
  • for(Strings:list){
  • System.out.println(s);
  • }
  • }
  • }
  • 运行结果如下:

Ⅳ java中怎么把以保存数据的list集合传到别的类中操作进行增删改查,

有好多方法啊,

1,可以在类中自定义构造函数,将list集合作为参数,在new对象的时候把集合传进去。

2,可以在类中定义方法,将list集合作为参数,然后使用对象调用该方法,并把list集合作为实参传进去。

list集合得到了,想怎么增删改查都可以了。

你说好几个类共同操作一个集合,集合这个东西跟数组一样,你把它作为实参传过去,实际上并不是传的集合对象本身,而是它的地址(或者是引用,可以这么理解),然后你在方法中操作集合,都是直接作用于集合本身而不是集合的值,也就是说你在方法内部操作传进来的集合,跟在外面直接操作集合是一个效果。这跟普通的变量不一样,普通的变量是值传递,你在方法内部操作一个变量只是在操作值,原来的变量还在那里不会改变。

所以说好几个类共同操作一个list集合,只需要分别把这个list集合传递到各个类中就可以了。

publicclassAnswer{
publicstaticvoidmain(String[]args){
Listlist=newArrayList();
Aaaa=newAaa(list);
Bbbb=newBbb();

//调用对象中的方法操作list集合
a.funA();
b.funB(list);
}
}

classAaa{
Listlist;
publicAaa(){};
publicAaa(Listlist){
this.list=list;
}

//定义处理list集合的方法
public...funA(){
//操作list集合
...
}
}

classBbb{
//定义处理list集合的方法
public...(Listlist){
//操作list集合
...
}
}

Ⅵ java里怎样用list存储对象

List<泛型> list = new ArrayList<泛型>();

list.add(泛型object);

e.g.
List<String> list = new ArrayList<String>();
String str = new String("aaaa");
list.add(str);

Ⅶ java如何将1个list存入缓存中并在缓存在修改数据

publicclassTest2{

publicstaticvoidmain(String[]args){
try{
List<String>list=newArrayList<>();
//模拟传过来的值
inti=0;
while(true){
Longtime=newDate().getTime();
//将当前时间与值拼接成字符串保存到list
list.add("value"+i+","+time);
//调用处理方法
processing(list);
i++;
//模拟每次传入的时间长度
Thread.sleep(3000);
}
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticvoidprocessing(List<String>list){
//第一个存入的值
Stringsrc1=list.get(0);
//最后一个存入的值
Stringsrc2=list.get(list.size()-1);
//通过转换成数组
String[]c1=src1.split(",");
String[]c2=src2.split(",");
//拿到第一个存入的时间字符串转换成Long
Longl1=Long.parseLong(c1[1]);
//拿到最新的时间字符串转换成Long
Longl2=Long.parseLong(c2[1]);
//如果大于等于30000毫秒就说明了过了30秒清空
if((l2-l1)>=30000){
list.clear();
}
System.out.println("每次的值"+src2);
System.out.println("是否30秒清空"+(list.size()==0));
}
}


/*******************************第二种方式*************************************/

publicclassTest2{
//定义一个全局变量用于接收时间
privatestaticLongtime=0L;
publicstaticvoidmain(String[]args){
try{
List<String>list=newArrayList<>();
//模拟传过来的值
inti=0;
while(true){
//如果list是在清空状态那么就创建个时间为第一次时间
if(list.size()==0){
time=newDate().getTime();
}
//将字符串保存到list
list.add("value"+i);
//调用处理方法,没次传入一个当前存入对象的时间
processing(list,newDate().getTime());
i++;
//模拟每次传入的时间长度
Thread.sleep(3000);
}
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicstaticvoidprocessing(List<String>list,Longtimes){
//当前时间-第一次存入的时间大于等于30000毫秒
//就是过了30秒执行清空操作
if((times-time)>=30000){
list.clear();
}
for(Stringls:list){
System.out.println("每次的值"+ls);
}
System.out.println("是否30秒清空"+(list.size()==0));
}
}

我没有redis 只能模拟一个 你看下 其实 你就多了一步 从缓存中取值 判断不能 等于 30000毫秒 因为 时间会有所偏差 可能大于 所以 大于等于,你要是觉得 毫秒太长你可以 转换成秒存入 在计算


第二种 的话 你的程序 可能不需要太大改掉

热点内容
memcached源码分析 发布:2025-07-18 19:22:42 浏览:865
android展示图片 发布:2025-07-18 19:21:24 浏览:593
一台服务器5个IP怎么分配 发布:2025-07-18 19:12:34 浏览:861
贵阳分布式存储行情 发布:2025-07-18 19:12:31 浏览:360
车场服务器和工控机是如何连接的 发布:2025-07-18 19:10:19 浏览:937
计算机编程学什么好 发布:2025-07-18 19:06:49 浏览:409
网吧用的服务器是什么服务器 发布:2025-07-18 18:40:15 浏览:938
ftp命令使用 发布:2025-07-18 18:13:05 浏览:47
办税密码是什么 发布:2025-07-18 18:12:32 浏览:489
linuxftp文件下载 发布:2025-07-18 18:12:30 浏览:943